🐡

npm installで発動するnpmライフサイクルフックスクリプトの確認

に公開

2025年9月に、npmのサプライチェーン攻撃「Shai-Hulud」が報告されました。
調べてみると、この攻撃は npm install 実行時にトリガーされる postinstall スクリプト を悪用していたようです。

postinstall がどのように動くのか気になったので調べてみたところ、npm にはLife Cycle Scriptsという仕組みがあり、postinstall はその一部であることが分かりました。
Life Cycle Scriptsは、Reactなどの「フック」と同様に、特定の処理タイミングで自動的に実行されるスクリプトです。

良い機会だったので、実際に自分でnpmパッケージを作成し、それを自分でインストールして、ライフサイクルフックの実行確認をしてみました。

検証手順とコードは以下のリポジトリにまとめています。
興味のある方は clone して試してみてください。
https://github.com/unkeleven/npm-hooks-test

Discussion