メインコンテンツへスキップ
← 記事一覧へ
セキュリティニュース掘り下げ提供元の公式発表/編集部の対応手順

Happy DOMにコード実行の脆弱性―外部HTMLを処理する環境は21.0.4以降へ

過去の修正では防げなかったimport処理の不備です。JavaScript評価の有効化と外部入力の組み合わせを確認し、テスト用依存関係も更新します。

脆弱性の公表日:2026-10-20 / 公開: / 更新: / 最終確認:
Codingholic 編集部 · 約3分

Happy DOMは、Node.js上でブラウザのDOMを再現し、画面のテストやHTML処理に使うライブラリです。開発元は2026年10月20日、外部のモジュールを処理するとホスト側でコードを実行されるCVE-2026-115895を公表しました。修正版は21.0.4です。

JavaScript評価と、信頼できない入力が条件

公式が示す対象は17.0.0以上21.0.3以下です。enableJavaScriptEvaluationを有効にし、攻撃者が操作できるHTMLやモジュールを処理する環境で成立します。インストールされているだけで一律に攻撃が成立するわけではありません。

外部ページのプレビューや取得処理に加え、テストでどこから入力を受け取るかも確認対象です。開発用の依存関係であっても、実行するプロセスが持つファイルや環境情報への権限は残ります。

前回のexport修正とは別のimport経路が残った

原因は、importの別名を十分に検証せず生成コードへ入れる処理です。本来不正な構文が実行可能なコードへ変換されます。公式の実証ではNode.jsの機能に到達し、ホストにディレクトリを作成できました。実被害の発表とは区別して読む必要があります。

以前のCVE-2026-33943への対応はexport側の経路を扱っていました。前回修正済みでも今回の対象から外れるとは限りません。アドバイザリ本文には調査当時の「修正版なし」が残りますが、現在の版情報と21.0.4のリリース告知で修正を確認できます。

依存関係を更新し、入力経路も見直す

当社では、lockfileと実際の依存ツリーでhappy-domの解決版を調べ、21.0.4以降へ更新することを提案します。間接依存なら呼び出し元の互換性も確認し、CI環境を含めて再インストール・テストを実施します。

更新まで外部入力の評価を止められるかを検討し、不要なJavaScript評価は無効にします。更新後は通常のDOMテストが通ることと、外部HTMLを扱う経路が意図した設定になっていることを確認します。

出典と編集について

Happy DOM:Happy DOMにコード実行の脆弱性:公式アドバイザリ ↗

Happy DOM 21.0.4:ESMコンパイラの修正 ↗

出典の報告と、編集部が提案する点検・対策を分けて記載しています。本記事の点検項目は個別環境の診断結果ではありません。