45件のnpm脆弱性警告と無リスクの真実:静的サイトで npm audit fix --force を盲信してはいけない理由
· 約5分
モダンなフロントエンドやドキュメントサイトを運用するエンジニアであれば、一度は血の気が引くような経験をしたことがあるはずです。何気なく npm audit を実行した瞬間、コンソールに警告が溢れ出します:
45 vulnerabilities (15 moderate, 15 high, 15 critical)
To address all issues (including breaking changes), run:
npm audit fix --force
Critical、Remote Code Execution (RCE)、Prototype Pollution といった不穏な単語を目にすると、反射的に npm audit fix --force を実行して赤い警告を消したくなります。
しかし、DocusaurusやNext.jsなどの 静的サイトジェネレーター(SSG) をGitHub PagesやAWS S3にデプロイするアーキテクチャでは、この無分別なダウングレードこそが最新フレームワークを破壊する最大の原因になります。
本記事では、静的サイトの脅威モデル (Threat Model) を明確にし、ビルドツールとランタイム脆弱性の本質的な違いを分析した上で、実際に守るべき 4層のセキュリティ対策 を共有します。
