つみかさね

CVE-2026-33943

High(8.8)

CVE-2026-33943 — Happy DOM ESModule コードインジェクション RCE

公開日: 2026-03-29データソース: NVD, GitHub Advisory

影響を受けるソフトウェア

製品ベンダー影響バージョン
happy-domcapricorn86v15.10.0 - v20.8.7
CVEHappy DOMCode InjectionRCEJavaScript

概要

Happy DOM は ブラウザ 環境 を エミュレート する JavaScript ライブラリ で、テスト フレームワーク(Vitest, Jest 等)で 広く 使用 されて います。この 脆弱性 は Happy DOM の ECMAScriptModuleCompiler が ユーザー 入力 を サニタイズ せず に export 宣言 内 に 補間 する こと で、コード インジェクション が 発生 する 問題 です。

具体的 には、ECMAScriptModuleCompiler が ES モジュール の export 宣言 を 生成 する 際 に、外部 から の 入力 を 適切 に エスケープ せず に テンプレート に 埋め込みます。攻撃者 は バックティック テンプレート リテラル を 使用 する こと で、通常 の クォート フィルタ を バイパス し、任意 の JavaScript コード を 注入 できます。

この 脆弱性 は CWE-94(Improper Control of Generation of Code / Code Injection)に 分類 されます。Happy DOM が サーバー サイド で 使用 されて いる 場合、注入 された コード は Node.js 環境 で 実行 され、リモート コード 実行(RCE)に つながります。テスト 環境 で 使用 されて いる 場合 でも、悪意 ある テスト データ や 依存 パッケージ を 通じて 攻撃 が 可能 です。

影響 を 受ける バージョン は v15.10.0 から v20.8.7 まで です。CVSS スコア は 8.8 で High と 評価 されて います。修正 バージョン v20.8.8 が リリース されて います。Happy DOM を 使用 して いる プロジェクト は 速やかに アップデート を 実施 して ください。

Happy DOM は npm で 週 に 数百万 回 ダウンロード される 人気 パッケージ であり、特に Vitest の デフォルト DOM 実装 として 広く 採用 されて います。テスト 環境 は 本番 環境 と 比べて セキュリティ が 軽視 されがち ですが、CI/CD パイプライン で の コード 実行 は サプライ チェーン 攻撃 の 入口 と なり 得ます。テスト 環境 で あっても セキュリティ アップデート を 怠ら ない こと が 重要 です。バックティック に よる クォート フィルタ バイパス は JavaScript 特有 の 攻撃 手法 であり、テンプレート リテラル を 扱う コード で は 特に 注意 が 必要 です。package.json や lock ファイル で 依存 バージョン を 固定 して いる 場合 は、明示的 に アップデート を 実施 して ください。

CVSS ベクトル

項目
CVSS スコア8.8(High)
攻撃 元 区分ネットワーク
攻撃 条件 の 複雑 さ
必要 な 特権 レベル
ユーザー 関与不要
CWECWE-94(Improper Control of Generation of Code)

影響 を 受ける ソフトウェア

製品ベンダー影響 バージョン
happy-domcapricorn86v15.10.0 から v20.8.7

修正 バージョン と 回避策

  • 修正 バージョン: v20.8.8
  • 回避策: 信頼 できない HTML コンテンツ を Happy DOM で 処理 しない
  • 回避策: Happy DOM を サンドボックス 化 された 環境 で 実行 する
  • 推奨: npm update happy-dom で 最新 バージョン に アップデート する
  • 推奨: テスト 環境 で あっても 依存 パッケージ の セキュリティ アップデート を 適時 適用 する
  • 推奨: npm audit や npx audit-ci を CI パイプライン に 組み込み 脆弱 な 依存 関係 を 自動 検出 する 仕組み を 導入 する
  • 推奨: Happy DOM を 使用 する テスト で は 外部 から の 入力 データ を サニタイズ した 上 で 渡す こと を 推奨 する

関連 リンク


データソース: NVD (NIST) AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。

Xでシェアはてブ
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database, JVN iPedia (IPA/JPCERT/CC)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。