本サイトの記事や画像は、AIが公的資料や複数の報道を基に事実関係を整理・再構成し制作したものです。[続きを表示]特定の報道内容や表現を再利用・要約することを目的としたものではありません。ただし、誤りや不確定な情報が含まれる可能性がありますので、参考の一助としてご覧いただき、実際の判断は公的資料や各出典元の原文をご確認ください。[私たちの取り組み]
Googleの圧縮形式「Brotli」のデコーダーに深刻な脆弱性「CVE-2026-111497」が見つかり、Node.js以外にも影響が及ぶと10月26日付で窓の杜が報じた。攻撃者が用意した圧縮データを展開すると、情報漏えいやサービス拒否、任意コード実行につながる恐れがある。Node.jsやBrotli本体を含む複数のソフトウェアで修正版が公開されている。
攻撃者由来のデータを展開する経路が条件
Red Hatの説明によると、問題はGoogle Brotliデコーダーでブロック種別を切り替える処理にあり、想定範囲外へデータを書き込んでしまう。攻撃を成立させるには、対象アプリケーションに、攻撃者が制御するBrotliデータを展開する経路が必要となる。
その経路は、受信したリクエストの展開に限らない。外部サーバーから取得した圧縮レスポンスの展開でも、問題の処理に到達し得る。Impervaは両方の経路を試験対象としており、外部から受け取るデータをどこで展開しているかが、影響を調べる上で重要になる。
10月22日付のImpervaの報告によると、公式Node.js 24.22.0のLinux arm64イメージを使った試験で、コード実行を実証したという。デバッガーや計測用に変更したバイナリは不要だった一方、成功には複数回の試行を要した。同じ入力は修正版の24.22.1では拒否されたという。これは特定環境での実証であり、全環境で安定して成功することを示す結果ではない。
更新対象はNode.js以外にも
窓の杜によると、この問題は当初、OpenAIによってNode.jsの問題として報告された。その後、同じデコーダーが他のソフトウェアにも組み込まれていることから、影響範囲が広いと判明した。Aikido Securityなどは「HTTP2Shell」という呼称を用いているが、HTTP/2接続そのものの脆弱性ではなく、問題箇所はBrotliの展開処理にある。
Node.jsは10月21日付の公式告知で、22.x、24.x、26.x系列向けのセキュリティ更新を提供した。修正版はそれぞれ22.23.4、24.22.1、26.12.1となる。Google Brotli本体にも1.0.10、1.1.1、1.2.1の修正版が公開された。
Python向けのBrotliとbrotlicffiにも影響があり、修正版はそれぞれ1.2.1と1.2.1.0となる。BunやEnvoy Proxyなどにも影響が確認されており、各製品の修正版への更新が必要となる。Brotliを同梱するアプリやコンテナーでは、修正版を反映した再ビルド・再配備も重要だ。
暫定対応としてRed Hatは、可能な範囲で、信頼できない相手からのBrotliデータの受け入れや自動展開を避けるよう案内している。Impervaは、パッケージ一覧だけではコンテナー内に残る古いNode.jsランタイムを見落とす可能性があると指摘し、実際に配備されたバージョンの確認を求めている。
参考・出典
- Node.js — Wednesday, October 21, 2026 Security Releases
- CVE-2026-111497 – Red Hat Customer Portal
- Node2Shell: From Brotli Data to Remote Code Execution
- Node2Shell evolves to HTTP2Shell
- Release v1.2.1 – google/brotli
- Release v1.1.1 – google/brotli
- Release v1.0.10 – google/brotli
- GHSA-9v8h-qqgm-4m35 – GitHub Advisory Database
- Bundled brotli decoder has an out-of-bounds write – Bun Security Advisory
- Googleの圧縮形式「Brotli」に深刻な脆弱性「HTTP2Shell」、Web関連に幅広く影響
