Codexが見つけたNode.js欠陥、翌日に攻撃コード
OpenAI Codex Securityチームが報告したNode.jsのBrotliデコーダーの脆弱性(CVE-2026-111497)が10月21日に修正された翌日、セキュリティ企業インパーバが「Node2Shell」として公式Node.js 24.22.0 arm64イメージでのリモートコード実行を実証した。
OpenAIのCodex Securityチームが発見・報告したNode.jsのBrotli(ブロトリ)展開処理の欠陥に、公開の攻撃コードが登場した。Node.jsは10月21日のセキュリティリリースでこの脆弱性(CVE-2026-111497)を修正したが、その翌日にはセキュリティ企業インパーバ(Imperva)のレッドチームが公式ビルド上でリモートコード実行を実証したと、海外メディアのThe Hacker Newsが報じた。

要点
- Node.js 22.23.4、24.22.1、26.12.1が、リモートコード実行につながり得るBrotliデコーダーの範囲外書き込みを修正した。
- インパーバは公式のNode.js 24.22.0 Linux arm64イメージでコード実行に成功したが、毎回成功したわけではない。
- 実際の悪用は報告されていないが、Node.js 20.x以前には修正が提供されず、Bunも上流の修正を取り込めていない。
Node.jsのBrotli脆弱性とは
Node.jsのセキュリティ告知によると、Brotliデータ内の不正なブロック切り替えを「恒久的な形式エラー」ではなく「入力が一時的に足りない状態」として扱ったことが原因だ。その結果、デコーダーは8バイトの内部バッファーに入力を追記し続けた。
攻撃者がnode:zlibで展開するアプリに細工したデータを渡せれば、プロセスのメモリを破壊し、クラッシュや情報漏えい、リモートコード実行を引き起こせるという。Node.js自身の評価は「High」である。セキュリティ企業サイコード(Cycode)などによると、CVE採番機関のグーグルはCVSS 4.0で9.2と評価した。
告知は報告者として「OpenAI Codex Security」のカイ・トラン氏とシルヴィ・メイヤー氏を、修正者としてNode.jsメンテナーのmcollina氏とaduh95氏を挙げた。今回のリリースで修正されたCVEは10件で、うち4件が「High」だ。
修正の翌日に「Node2Shell」攻撃
The Hacker Newsによると、10月22日に最初に公開された概念実証(PoC)コードは、意図的に防御を弱めた試験ビルドでしかコード実行に至らなかった。通常ビルドではクラッシュと限定的なメモリ読み出しにとどまった。
同じ日、この攻撃を「Node2Shell」と名付けたインパーバのレッドチームはさらに踏み込んだ。Express 5.0.0〜5.3.0とbody-parser 2.0.0〜2.3.0の環境で、受信したリクエスト本文と、fetch()で取得したBrotli圧縮レスポンスの両経路からコード実行を再現した。他のアーキテクチャや22.x、26.xは検証しておらず、修正版の24.22.1は同じ入力を拒否した。
対応が必要なのはNode.jsだけではない
グーグルのBrotliプロジェクトも10月21日、このCVEを明記したv1.2.1、v1.1.1、v1.0.10を公開した。10月21日に立てられたGitHubのイシューは「すべてのBunのリリースが影響を受ける」と指摘し、修正のプルリクエストは保留状態にある。
サポートが終了したNode.js 20.x以前には修正が出ない。旧版の延長サポートを販売するヒーローデブズ(HeroDevs)は、20.20.2と18.20.8でも脆弱なデコーダーを確認したとしている。クオリス(Qualys)は、更新後にコンテナイメージを再ビルドし、常駐サービスを再起動するよう勧めている。
AIが見つけたバグが攻撃に変わる速さ
今回の件は、AIが見つけたバグが修正公開の直後に攻撃コードへ転じた事例である。修正の公開から現場への適用までの空白が、そのまま危険な期間となる。
今後の見通し
インパーバとバーセル(Vercel)はファイアウォールのルールを追加した。ただしバーセルのルールは受信リクエストのみが対象で、アプリが外部サーバーから取得するBrotliレスポンスは防げない。インパーバは「更新だけが欠陥を取り除く」と述べた。10月23日時点で、このCVEは米CISAの「既知の悪用された脆弱性(KEV)」カタログに載っていない。
よくある質問
CVE-2026-111497を修正したNode.jsのバージョンは?
22.23.4、24.22.1、26.12.1と、各系列のそれ以降のリリースである。告知に回避策の記載はない。
Node2Shellは実際の攻撃に使われているのか?
10月23日時点で実際の悪用は報告されていない。公開PoCは存在し、インパーバのコード実行も毎回成功したわけではない。
古いNode.jsを使っている場合は?
20.x以前はサポート終了で修正がない。サポート中の系列へ移行するのが唯一の上流の対策だ。
参考資料
- Node.js — Wednesday, October 21, 2026 Security Releases — Node.js(2026年10月21日)
- Researchers Demonstrate Node2Shell RCE Exploit on Node.js Build Using Crafted Brotli Data — The Hacker News(2026年10月23日)
- Releases · google/brotli — GitHub
- Brotli decoder is missing the CVE-2026-111497 fix (google/brotli@0ed4268a) — GitHub, oven-sh/bun(2026年10月21日)
- Node.js Patches Brotli Remote Code Execution Flaw: Find Vulnerable Runtimes Before Attackers Do — Qualys(2026年10月23日)
- node2shell (CVE-2026-111497): What to Patch in Node.js — Cycode(2026年10月23日)
- CVE-2026-111497 (Node2Shell): Node.js Brotli RCE Fix — HeroDevs(2026年10月23日)
ZZEMが運営するAI Newswayの編集責任者です。AI、開発ツール、クラウド、生産性テクノロジーの記事を執筆しています。
コメント 0
現在コメントの投稿は無効になっています。