注目★★★★★GitHub Advisory
pnpm の lockfile エイリアス脆弱性、外部ファイルアクセスを防ぐパッチ
30秒で把握
- 1pnpm と pacquet の hoisted node_modules エイリアス検証に脆弱性があり、lockfile から任意ファイルへのアクセスが可能だった
- 2細工された lockfile でディレクトリトラバーサルや予約ファイル名の上書きが可能だったため、pnpm のレイアウト破壊リスクが存在
- 3修正版では package-name 検証と path 制約がグラフ挿入前に実行され、意図外ファイルアクセスは阻止される
要約
pnpm と pacquet に、hoisted `node_modules` 下でのパッケージ名エイリアス検証の脆弱性が存在していた。細工された lockfile エイリアスは直接 hoisted ディレクトリに配置でき、トラバーサルエイリアスでこのディレクトリを脱出したり、`.bin` や `.pnpm` などの予約名で pnpm のレイアウトを上書き可能だった。パッチにより、グラフ挿入またはファイルシステム操作前に、パッケージ名のセマンティクスとパス制約が検証されるようになった。修正版では、トラバーサルエイリアスを含む lockfile は graph 挿入前に拒否され、意図した install ルート外のファイルアクセスは発生しない。
あなたへの影響
pnpm を本番環理で使用するチームは、この脆弱性の対象バージョンを確認し、修正版へのアップグレードを検討してください。
推奨:特に CI/CD パイプラインで外部の lockfile を使う場合はバージョン確認を推奨します。