
npm(Node Package Manager)は、JavaScript(Node.js)で開発する際に、便利なプログラムやライブラリ(パッケージ)を簡単にインストール・管理できるツールです。
GitHubは2026年6月9日、npmの次期メジャーバージョンである npm v12 において、セキュリティ強化を目的とした複数の破壊的変更(breaking changes)を導入すると発表しました。
リリースは2026年7月頃を予定しており、現在の npm 11.16.0 以降では警告として事前に確認できるようになっています。
GitHubがnpmの変更を案内?と思う方もいらっしゃるかもしれませんが、2020年にGitHubがnpm,Inc.を買収しているため、このような構造となっています。
変更の概要は次のようなものです。
- インストール時のスクリプト実行がデフォルトで無効化
npm v12 では、allowScripts がデフォルトで無効化されます。
これにより、npm install 実行時に依存パッケージが持つ以下のスクリプトは自動実行されなくなります。- preinstall
- install
- postinstall
- 影響を受ける可能性があるもの
インストール時に追加処理を実行するパッケージは影響を受ける可能性があります。
これまで問題なくインストールできていたパッケージでも、追加設定なしでは正常に動作しなくなる可能性があります。- node-gyp を利用するネイティブモジュール
- インストール時にビルドを行うライブラリ
- バイナリをダウンロードするライブラリ
- 必要な対応
信頼できるパッケージについては、利用者が明示的に実行を許可する必要があります。
許可した内容は package.json に保存できるため、チームやCI/CD環境でも共有・管理できます。
npm approve-scripts - Git依存・リモートURL依存の取り扱いも厳格化
Gitリポジトリ経由の依存関係や、リモートURLから取得するパッケージについても制御が強化されます。
目的は、依存関係の取得時に外部コードが暗黙的に実行されることを防ぐことです。 - 変更の狙い
主な目的はソフトウェアサプライチェーン攻撃への対策です。
以下のリスクを低減し、安全なパッケージ管理を実現することが狙いです。- 悪意のある npm パッケージによる攻撃
- Gitリポジトリの改ざん
- インストール時の任意コード実行
- マルウェア混入
GitHubは近年、npmエコシステムを狙ったマルウェア混入やサプライチェーン攻撃への対策を強化しており、今回の変更もその流れの一環です。
インストール時の自動実行を制限することで、悪意のあるパッケージが開発環境やCI/CD環境で任意コードを実行するリスクを低減しようとしています。
既存プロジェクトでは、ネイティブアドオンやインストールスクリプトに依存しているパッケージの洗い出しが重要になります。npm v12への移行前に npm 11.16.0 以降で警告内容を確認し、必要なパッケージを明示的に許可する運用へ移行しておくことが推奨されています。
今回の変更は互換性への影響が大きい一方で、npm利用時のセキュリティを大幅に向上させるアップデートといえます。
Upcoming breaking changes for npm v12
https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/
| この記事をシェア |
|---|