Googleのデータ圧縮形式「Brotli」のデコーダーに、深刻な脆弱性「CVE-2026-111497」が見つかった。Brotliは2026年10月21日(米国時間)に修正版の1.0.10、1.1.1、1.2.1を公開した。Brotliを組み込んでいるNode.jsも、同日に修正版を公開した。
GoogleのCVEレコードによると、影響を受けるのはBrotli 1.0.3から1.2.0までである。細工した圧縮データを送り込むことで、認証のない遠隔の攻撃者がメモリを破壊できるおそれがある。深刻度はCVSS v4.0の基本値で9.2(Critical)とされている。
圧縮データの展開処理で境界外書き込み
問題があるのは、圧縮データを元に戻すデコーダー(c/dec/decode.c)だ。CVEレコードでは、プラットフォームを問わず影響を受けるとしている。攻撃者は、デコーダーの状態を保持するメモリを壊したり、メモリの中身を盗み見たりできるおそれがある。サービス停止(DoS)や任意のコード実行につながる可能性も示されている。
Node.jsの説明によると、不正なブロック切り替えが「形式の誤り」として扱われていなかった。「入力が一時的に足りない」と誤って判定されていたという。そのためデコーダーは、8バイトの内部バッファーに入力を追加し続け、領域の外に書き込んでしまう。
Node.jsは22.x・24.x・26.xの全系統が対象
Node.jsは、同梱するBrotliデコーダーの問題として、この脆弱性を修正した。node:zlibで展開するBrotliデータを攻撃者が送り込める場合、プロセスのメモリが壊されるおそれがある。その結果、クラッシュやメモリ内容の漏えい、リモートコード実行につながる可能性があるとしている。
影響を受けるのは、Node.jsの26.x、24.x、22.xである。修正版は、v22.23.4、v24.22.1、v26.12.1だ。Node.jsはこの脆弱性の深刻度を「high」と評価しており、CVEレコードの「Critical」とは表記が分かれている。
報告者として、OpenAI Codex SecurityのKhai Tran氏とSylvie Mayer氏の名前が挙がっている。今回のNode.jsのセキュリティリリースでは、ほかにDNSの名前解決やTLSのホスト名検証に関する脆弱性も修正された。c-aresやOpenSSL、Undiciなど依存ライブラリの更新も含まれる。
修正版への更新が対策
CVEレコードは、1.0.3から1.2.0までのBrotliライブラリやバイナリを、最新の修正版に更新するよう求めている。系統ごとの修正版は1.0.10、1.1.1、1.2.1である。BrotliのGitHubのリリースノートにも、この脆弱性の修正が記載されている。
一方で、Node.js以外にどの製品が影響を受けるかは、今回の公式発表では網羅的に示されていない。Brotliを組み込んだ製品やライブラリを使っている場合は、それぞれの提供元の情報を確認する必要がある。
企業への示唆
まず確認したいのは、Node.jsを使っているシステムのバージョンだ。22.x、24.x、26.xのいずれの系統も対象のため、修正版への更新を優先したい。node:zlibで外部から受け取ったBrotliデータを展開している処理があれば、特にリスクが高いと考えられる。
Node.js以外でも、Brotliを組み込んだミドルウェアやライブラリが社内にあるかを洗い出しておきたい。ソフトウェア部品表(SBOM)があれば、Brotliの1.0.3〜1.2.0を含むものを絞り込みやすい。自社で把握しきれない製品は、提供元の対応状況を問い合わせる必要がある。
ITトレンドでセキュリティ診断サービスについてチェック![【ランキング】セキュリティ診断サービスおすすめ22選を比較!料金相場や選び方も解説]
脆弱性のニュースはこちらもチェック![GitLabが緊急パッチ19.4.1を公開、CVSS 9.9のコード実行など脆弱性11件を修正——自己管理型は即時アップデートを推奨]
まとめ
Googleの圧縮形式「Brotli」のデコーダーに、認証なしで遠隔からメモリを破壊できる脆弱性CVE-2026-111497が見つかった。CVSS v4.0は9.2(Critical)で、Brotli 1.0.3〜1.2.0が対象となる。Brotliは1.0.10、1.1.1、1.2.1で修正した。
Node.jsも、22.x、24.x、26.xの修正版を10月21日に公開している。企業は、Node.jsの更新を急ぐとともに、Brotliを組み込んだほかの製品の有無と提供元の対応を確認しておきたい。

