テック技報最新号へ →
コード

npm/pnpm: minimum-release-age でサプライチェーン攻撃を避けつつ、緊急パッチだけ一時的に解除する

公開直後のバージョンを入れない「minimum release age」は、乗っ取られたパッケージ対策として有効。セキュリティパッチをすぐ入れたいときは、環境変数でその1回だけ 0 にする。

@zaru · 投稿 2026-04-10
#javascript#npm#pnpm#security

設定例

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 など)を併用すると安全度が上がる。

出典

X の元の投稿を開く