以下、Claude sonnetによる出力
`
機能 pnpm Bun postinstallスクリプトのブロック ✅ デフォルトでブロック(v10+) ✅ デフォルトでブロック(初期から) 脆弱性スキャン pnpm audit bun audit(比較的新しい) lockfileチェックサム ✅ あり ✅ あり(ただしデフォルトはバイナリ形式) Supply chain保護 minimumReleaseAge、trustPolicy、blockExoticSubdeps など多層防御 trustedDependencies allowlist ファントム依存の防止 ✅ 厳格な依存解決 ⚠️ 比較的緩い ビルトイン監査機能 ✅ 充実 ⚠️ 発展途上(サードパーティ推奨)
pnpm v10(2024年末)〜v11(2026年4月)にかけて「Security by Default」を大幅強化しており、現時点で最も多層的な防御を備えています。1
minimumReleaseAge:公開直後のゼロデイ悪意パッケージをブロック(例:24時間以内のリリースを拒否)
trustPolicy: no-downgrade:CI/CD検証なしで公開された弱いプロベナンスのバージョンへのダウングレードを防止
blockExoticSubdeps:信頼済み依存が非公式ソースから推移的依存を引き込むのを防止
CVE-2026-24910:2026年に trustedDependencies の信頼検証バイパス脆弱性が発見されており、v1.3.5で修正済み。npm以外のソースのパッケージが誤って信頼されるという問題でした。4
ビルトイン監査が未成熟:bun audit は存在するが、本番環境ではSnykやSocketなどのサードパーティツールの併用が推奨されています。5
lockfileがデフォルトでバイナリ:bun.lockb はコードレビューでdiffが取れず、改ざん検知が困難。テキスト形式の bun.lock は存在するが非デフォルト。
セキュリティ最優先ならpnpmが現時点での安全な選択です。特にエンタープライズ・本番環境・モノレポでは、pnpmの多層的なsupply chain防御(minimumReleaseAge、trustPolicy、blockExoticSubdeps)が強力な優位性を持ちます。1
Bunは「デフォルトでpostinstallブロック」という点では初期から優れていましたが、CVE-2026-24910のような脆弱性の発見や監査機能の未成熟さから、現時点ではpnpmに一歩譲る状況です。ただしBunも急速に改善中であり、速度を重視する個人プロジェクトや開発環境では十分な選択肢です。