圧縮形式Brotliに外からコード実行の脆弱性、悪用を確認

圧縮形式 Brotli の
脆弱性の概要
- 対象
- 圧縮ライブラリ
- 悪用
- あり(確認済み)
- 影響
- 細工した圧縮データでコードを実行される
- 修正版
- 修正版あり
- 公表元
- Google / JPCERT/CC / CISA
| 製品 | 対象のバージョン | 修正版 |
|---|---|---|
| Brotli 1.2系 | 1.2.1 より前 | 1.2.1 |
| Brotli 1.1系 | 1.1.1 より前 | 1.1.1 |
| Brotli 1.0系 | 1.0.3 以上 1.0.10 未満 | 1.0.10 |
| Node.js 26系 / 24系 / 22系 | 修正版より前 | v26.12.1 / v24.22.1 / v22.23.4 |
| Python の brotli | 1.0.3 以上 1.2.1 未満 | 1.2.1 |
| Python の brotlicffi | 1.0.3 以上 1.2.1.0 未満 | 1.2.1.0 |
| PAN-OS 12.2 / 12.1 / 11.2 | Brotli 検査と TLS 復号が有効な機器 | 12.2.4-h1 など(案内のとおり) |
製品の履歴:Node.jsの脆弱性一覧Brotliの脆弱性一覧
やること
Brotli は Web の通信やファイルを小さくする圧縮形式です。自社のシステムで使われていないかを確かめ、修正版へ更新してください。
- Brotli 本体は 1.2.1、1.1.1、1.0.10 です
- Node.js は v26.12.1、v24.22.1、v22.23.4 です
- Python のパッケージは、
brotliが 1.2.1、brotlicffiが 1.2.1.0 です - 製品に組み込まれている場合は、開発元の案内に従ってください
Google は緩和策を出していません。製品ごとの緩和策は開発元の案内で確かめてください。
何が危ないのか
CVE-2026-111497 は圧縮データを元に戻す処理の欠陥です。細工したデータを展開させると、メモリの範囲の外へ書き込みが起き、アプリの異常終了やメモリの内容の漏えい、コードの実行になるおそれがあります。攻撃にログインは要りません。CVSS は v4.0 で 9.2 です。評価は、ネットワークから届き、難易度は低く、利用者の操作は不要とし、攻撃の成立にはある前提条件が要るとしています。
Google は10月21日に修正版を公開しました。JPCERT/CC は10月26日に注意喚起を出し、この脆弱性が Node2Shell や HTTP2Shell と呼ばれていると説明しています。もとは Node.js が10月21日に公表した脆弱性として Node2Shell と呼ばれましたが、原因は Brotli の C 言語の実装にあり、HTTP の通信で広く使われることから HTTP2Shell とも呼ばれます。米国の CISA は10月27日に、悪用が確認された脆弱性の一覧(KEV)へ追加しました。
悪用の見え方は、公表元によって違います。JPCERT/CC の注意喚起には、悪用の状況の記載がありません。Palo Alto Networks は悪用を把握していないとし、Fortinet は11月6日更新のページで、既知の悪用は「なし」としています。悪用の確認として載せているのは CISA の一覧です。
自社の何が当てはまるか
この欠陥は、外から受け取った Brotli のデータを展開する処理があるときに問題になります。Node.js では、node:zlib の Brotli 展開が対象で、Node.js のお知らせは次のような例を挙げています。
- 検証していないアップロードファイルを展開する
- 外部からの応答の
Content-Encoding: brを展開する - 外から受け取ったデータの展開処理がある
Node.js のお知らせには、特定の設定が要るかどうかの記載はありません。Node.js はこの欠陥のほかにも、同じ10月のセキュリティリリースで複数の脆弱性を直しています。サポートが終わった版も、リリースの時点では影響を受ける前提とされています。
Python では、brotli と brotlicffi の両方のパッケージが影響を受けます。Node.js 側の問題と同じ原因の欠陥が、Python のパッケージにも及んでいます。
対象
Brotli 1.0.3 から 1.2.0 までが対象です。JPCERT/CC は Node.js、Bun、Python 向けのパッケージなどが含まれるとしています。Brotli は多くの製品に組み込まれているため、Brotli 形式のデータを展開する処理を使っている場合は、各開発元の案内で影響を確かめます。
Palo Alto Networks の PAN-OS は、Brotli の検査と TLS の復号の両方を有効にしている機器が対象です。管理用の画面は影響を受けません。確認は、11.2.4 以降ではコマンド show system setting brotli で「Enabled: yes」かを見ます。修正版に更新できないときは、set system setting brotli-encoding disable で Brotli のエンコードを無効にできます。PAN-OS 11.1 と 10.2、Panorama は影響を受けません。
Fortinet は11月6日の時点で、一部の製品への影響を調査中としています。FortiOS や FortiManager など多くの製品は影響なしと確認されています。
自社で確かめること
- Node.js と Python のバージョンを確かめる自社のシステムで動く Node.js と、Python の brotli パッケージのバージョンを確認してください。開発を委託しているなら委託先に問い合わせてください。
- 製品の開発元の案内を見るBrotli は多くの製品に組み込まれています。使っている製品に影響があるかは、開発元の情報で確かめてください。
- 侵害の有無を調べるJPCERT/CC は修正版の適用に加えて、侵害の有無の調査を挙げています。アプリの異常終了が続いていないかも見てください。
出典
- JPCERT/CC「BrotliのC言語実装における境界外書き込みの脆弱性(CVE-2026-111497)に関する注意喚起」
- Google「Brotli Release v1.2.1」
- Node.js「October 2026 Security Releases」
- GitHub Advisory Database「GHSA-9v8h-qqgm-4m35」
- Palo Alto Networks「Impact of Brotli Vulnerability on Palo Alto Networks Products」
- Fortinet「Node2Shell CVEs(FG-IR-26-187)」
- CISA「Known Exploited Vulnerabilities Catalog」



コメント 0
まだコメントはありません。