概要

bin シムやランチャー、設定ファイルを悪用されないようにする修正。Nix では command -p が呼び出し元の PATH にフォールバックするため、依存パッケージの sed などの名前の bin が POSIX シムや pnpm/pn/pnpx/pnx ランチャーを乗っ取れたが、node_modules と相対・空のエントリを除いた PATH でヘルパーを探すようになった。v12.7.0・v11.28.0 のリリースノートでは、このほか pnpm-workspace.yaml の userAgent のプレースホルダーを展開しない修正、ワークスペース内の storeDir(v12.7.0)やカスタム modulesDir(v11.28.0)のパッケージのライフサイクルスクリプトに関する修正、シェル補完の修正(v11.28.0)がセキュリティ修正として挙げられている。その後、TypeScript 版 CLI が同梱する undici を脆弱性対応の 7.29.1 に上げ、プロジェクトの pnpm-workspace.yaml の globalShims を無視するようになった(未リリース)。v10.34.6 では pnpm self-update がプロジェクトの設定でダウンロード先や検証を変えられないようになり、adm-zip の脆弱性も修正された。

主な API・オプション

  • POSIX シム・ランチャー — node_modules と相対・空のエントリを除いた PATH でヘルパーを解決。再インストールで修正前のシムが置き換わる
  • pnpm-workspace.yaml の userAgent — プレースホルダーを含むものは無視される(リリースノートより)
  • globalShims — プロジェクトのマニフェストでは無視(pnpm home の pnpm-workspace.yaml は有効)

変更履歴

  • 2026-09-30 — プロジェクトの pnpm-workspace.yaml の globalShims を無視(#16368)⏳ 未リリース · 変更
  • 2026-09-30 — undici を 7.29.1 に更新(GHSA-3wwx-pv8p-q78v、#16363)⏳ 未リリース · 変更
  • 2026-09-28 — Nix で依存パッケージの bin がシムを乗っ取れないように(#14903)📦 pnpr@0.1.0-alpha.13 · 変更

関連