npm/pnpm: minimum-release-age でサプライチェーン攻撃を避けつつ、緊急パッチだけ一時的に解除する
公開直後のバージョンを入れない「minimum release age」は、乗っ取られたパッケージ対策として有効。セキュリティパッチをすぐ入れたいときは、環境変数でその1回だけ 0 にする。
設定例
yaml
# pnpm-workspace.yaml(pnpm): 公開から1日(分単位)経ったものだけ入れる
minimumReleaseAge: 1440緊急時に一時的に解除
bash
# pnpm
npm_config_minimum_release_age=0 pnpm update <pkg>
# npm
npm_config_min_release_age=0 npm install <pkg>注意点
- 解除は「そのコマンドだけ」に留め、設定ファイル自体は戻さない。
- 解除して入れるのは、公式のアドバイザリで確認できたパッチのバージョンに限る(偽のパッチ告知にも注意)。
- npm と pnpm で設定名が違い、npm 側の対応はバージョンによる。
npm config ls -lで自分の環境の項目名を確認する。 - pnpm はほかにも、ビルドスクリプトの許可制(
allowBuildsなど)を併用すると安全度が上がる。
出典
- @zaru · 2026-04-10
- 関連(pnpm のセキュリティ設定記事): @ryoppippi · 2026-01-28