対象CVE: GHSA-gv7w-rqvm-qjhr
[解説] esbuildのDenoモジュールにおけるリモートコード実行の脆弱性 (GHSA-gv7w-rqvm-qjhr)
esbuildのDeno版で発見された深刻な脆弱性(CVSS 8.1)について、原因と対策を解説します。CI/CDパイプライン環境で特に注意が必要です。
はじめに
2026年6月12日、人気バンドラー「esbuild」のDeno向けモジュールにおいて、深刻な脆弱性(GHSA-gv7w-rqvm-qjhr)が報告されました。CVSSスコアは8.1(High)と評価されており、特定の環境下でリモートコード実行(RCE)につながる恐れがあります。
脆弱性の原因:バイナリの整合性チェック漏れ
esbuildは高速化のためにネイティブバイナリをダウンロードして使用します。Node.js版のesbuildモジュールでは、ダウンロードしたバイナリファイルに対してSHA-256ハッシュを用いた厳格な整合性チェックが行われていました。
しかし、Deno版のモジュール(lib/deno/mod.ts)ではこのチェック機能が実装されておらず、ダウンロードしたバイナリをそのまま実行可能な状態で保存・実行してしまう状態になっていました。
どのような攻撃が可能か?
この脆弱性は環境変数「NPM_CONFIG_REGISTRY」の値を悪用します。この環境変数はCI/CDパイプラインや企業内のプロキシ環境でカスタムnpmレジストリを指定するために頻繁に使用されます。
攻撃者が何らかの方法でこの環境変数を汚染できた場合、esbuildは攻撃者が用意した偽のサーバーから悪意のあるバイナリをダウンロードし、Denoプロセスの権限でそのまま実行してしまいます。
対策と推奨されるアクション
この脆弱性は esbuild バージョン 0.28.1 で修正されました。該当するバージョン(0.17.0 以上、0.28.1 未満)をDeno環境で使用している開発者は、速やかに 0.28.1 以降へアップデートしてください。
また、開発環境やCI/CDパイプラインにおいて、意図しない環境変数が注入されないよう、権限管理とインフラのセキュリティ設定を改めて見直すことを推奨します。