Googleが開発したデータ圧縮ライブラリ「Brotli(ブロトリ)」に、外部から細工したデータを送るだけでメモリを書き換えられる脆弱性(CVE-2026-111497、通称 HTTP2Shell/Node2Shell)が見つかりました。修正版は2026年10月21日に公開されました。10月27日には、米国CISAが「悪用が確認された脆弱性」の一覧(KEVカタログ)に追加しています。影響を受けるのは、外部から受け取ったBrotli圧縮データを展開(伸長)するシステムです。Googleは修正版への更新以外の緩和策を提供していないため、まずは自社システムでBrotliが使われているかを、開発・保守ベンダーと一緒に確認してください。
この記事では、脆弱性の仕組み、影響を受ける製品と修正版、自社が対象かどうかを判断する手順、ベンダーに確認すべき8項目を、2026年10月29日時点の公開情報をもとに整理します。
CVE-2026-111497の要点:悪用が確認され、修正版への更新が唯一の対策
項目 | 内容 |
|---|---|
脆弱性 | BrotliのC言語実装の展開処理(デコーダ)における境界外書き込み(CWE-787) |
CVE番号・通称 | CVE-2026-111497(HTTP2Shell/Node2Shell。Broccoli2Shellとも呼ばれる) |
深刻度 | CVSS v4.0 9.2(緊急)。採番機関であるGoogleの評価 |
影響を受ける版 | Brotli 1.0.3〜1.2.0(1.0.3〜1.0.9、1.1.0、1.2.0) |
修正版 | Brotli 1.0.10/1.1.1/1.2.1(2026年10月21日公開) |
悪用の状況 | 米国CISAが10月27日にKEVカタログへ追加。ニュージーランドのNCSCは10月29日に、実際の悪用と攻撃コード(PoC)の公開を把握していると発表 |
緩和策 | Googleは緩和策を提供していない(JPCERT/CC)。各製品のベンダーが個別に回避策を案内している |
深刻度は評価する機関によって異なります。米国NVDはCVSS v3.1で9.8、MicrosoftとRed HatはCVSS v3.1で8.1、Node.jsは「High」としています。どの評価でも、優先して対応すべき水準です。
Brotliとは:直接入れた覚えがなくても、多くのシステムの内部で使われている
Brotliは、Webの通信量を減らして表示を速くするためにGoogleが開発した圧縮技術です。Webサーバーが送るHTMLやJSONを圧縮し、受け取った側が元に戻す(展開する)という使われ方をします。ブラウザやWebサーバーのほか、Node.js、.NET、Pythonのライブラリ、プロキシ製品などに部品として組み込まれています。
そのため、自社で「Brotliを導入した」という認識がなくても、使っているランタイムやライブラリ、コンテナイメージの中に含まれていることがあります。今回の確認が開発・保守ベンダーを巻き込む作業になるのは、この間接的な依存関係があるためです。
一方で、問題が起きるのは圧縮されたデータを展開する処理です。Webサーバーが応答をBrotliで圧縮して配信しているだけでは、この脆弱性は悪用されません。Red Hatも「信頼できない相手から受け取ったBrotliデータを展開するアプリケーションがない環境は、実質的に影響を受けない」としています。
何が危険なのか:細工したデータで、想定外のメモリ領域に書き込まれる
原因は、展開処理の中にある「ブロックの切り替え」の判定です。不正な切り替えが来たときに、本来は「データが壊れている」と判定して処理を止めるべきところを、「データがまだ足りない」と誤って判定していました。その結果、展開処理は受け取ったデータを8バイトしかない内部の領域に書き足し続け、領域の外まで書き込んでしまいます(Node.jsの公式アドバイザリより)。これが「境界外書き込み」です。
攻撃が成り立つには、次の2つがそろう必要があります。
- 攻撃者が中身を自由に決められるBrotli圧縮データが、システムに届くこと
- そのデータを、修正前の版のBrotliで展開すること
条件がそろった場合に起こりうる影響は、次の3つです。どれが起きるかは、製品や使い方によって異なります。
影響 | 起こりうること |
|---|---|
サービス停止 | サーバーやアプリケーションが異常終了し、ECサイトや業務システムが止まる |
情報漏えい | メモリ上にあった認証情報やセッション情報、処理中のデータが読み取られる |
任意のコード実行 | 攻撃者のプログラムがサーバー上で動き、ほかのシステムへの侵入の足がかりにされる |
影響を受ける主な製品と修正版
Brotli本体に加えて、Brotliを組み込んだ製品がそれぞれ修正版を出しています。主なものを下表にまとめます(2026年10月29日時点)。
製品 | 修正版 | 補足 |
|---|---|---|
Brotli(Google) | 1.0.10/1.1.1/1.2.1 | 影響を受けるのは1.0.3〜1.2.0 |
Node.js | 22.23.4/24.22.1/26.12.1 | 同梱のBrotliを使う |
.NET | 8.0.33/9.0.22/10.0.14 | .NET Frameworkは対象外。ASP.NET CoreとHttpClientは既定の設定ではBrotliを自動展開しない。自己完結型・NativeAOTのアプリは再ビルドが必要 |
Python(brotli/brotlicffi) | brotli 1.2.1/brotlicffi 1.2.1.0 | これらが入っていると、requests・urllib3・httpx・aiohttpがBrotli圧縮の応答を自動で展開する |
Bun | 1.4.4 |
|
Envoy | 1.36.12/1.37.8/1.38.6/1.39.3/1.40.0 | Brotliの展開機能を設定している環境が対象 |
Istio | 1.29.9/1.30.6/1.31.2 | 10月15日に公開 |
brotli4j(Java) | 1.24.0 | 1.23.0以前が対象 |
Linuxディストリビューション | 各社の案内に従う | Red Hatは10月27日時点で対応中(RHEL 7〜10が対象)。OSのBrotliパッケージは各ベンダーの修正を待って適用する |
Webアプリケーションのフレームワークでは、Express 5(body-parser 2.x)が要注意です。組み込みのリクエスト解析が、Content-Encoding: br を付けて送られてきたリクエストの本文を既定で展開するため、外部から細工したデータを受け取る経路になります。Express 4(body-parser 1.x)はBrotliを展開しません。
各機関の動き:10月21日の修正版公開から、悪用の確認まで
日付(2026年) | 出来事 |
|---|---|
10月21日 | GoogleがBrotli 1.0.10/1.1.1/1.2.1を公開。Node.jsが修正版を公開し、脆弱性を公表 |
10月22日 | CVE-2026-111497が公開される。Pythonのbrotli/brotlicffiの修正版が公開 |
10月23日〜24日 | Bun、Envoy、brotli4jが修正版を公開 |
10月25日 | Microsoftが.NETの定例外のセキュリティ更新を公開 |
10月26日 | JPCERT/CCが注意喚起(JPCERT-AT-2026-0034)を公開。Red Hatがセキュリティ情報(RHSB-2026-015)を公開 |
10月27日 | 米国CISAがKEVカタログに追加(米国連邦機関の対応期限は11月10日) |
10月29日 | ニュージーランドのNCSCが、実際の悪用と攻撃コードの公開を把握していると発表 |
JPCERT/CCの注意喚起は、対策の適用とあわせて侵害の有無の調査も求めています。悪用が報告されていることは、自社が侵害されたことを意味しません。ただし、修正前の版で外部のデータを展開していた期間がある場合は、その間の異常終了や不審な通信を確認しておく必要があります。
自社システムが対象かを判断する3つの問い
対象かどうかは、次の3つを順に確認すると判断できます。
- Brotliを使っているか。直接の利用だけでなく、ランタイム(Node.js、.NET、Python等)、ライブラリ、コンテナイメージ、プロキシ製品に組み込まれていないかを確認します。
- 影響を受ける版か。Brotli本体なら1.0.3〜1.2.0、組み込み製品なら上表の修正版より前の版が対象です。
- 攻撃者が中身を決められる圧縮データを展開するか。外部からのリクエスト本文、外部APIや他社サイトから取得するデータが該当します。
3つ目まで「はい」、または「わからない」となったシステムは、影響ありとみなして優先的に対応します。「いいえ」で終わった場合も、その判断の根拠(確認したバージョンや設定)を記録しておくと、後から説明を求められたときに困りません。
優先して確認したいのは、次のようなシステムです。
- インターネットに公開しているWebサービス、ECサイト、会員サイト
- 外部APIや他社サイトからデータを自動で取得する処理(AIサービスとの連携を含む)
- クラウドやコンテナで動くシステム(古いコンテナイメージに修正前の版が残っている場合がある)
- Node.js、Python、.NET、Javaで作られた業務システム
対策:修正版を適用し、コンテナやアプリを作り直す
基本の対策は、Brotliと、それを組み込んだランタイムやライブラリを修正版に更新することです。更新にあたっては、次の点に注意してください。
- コンテナは再ビルドして再配備する。ホストのOSを更新しても、コンテナイメージの中の古い版はそのまま残ります。
- ライブラリを同梱したアプリも作り直す。.NETの自己完結型やNativeAOTのアプリ、
bun build --compileで作った実行ファイルは、修正版で再ビルドしないと直りません。 - サポートが終了した製品は修正版が出ない。この場合は、サポート対象の版への移行が必要です。
すぐに更新できない場合の回避策は、製品ごとに案内されています。Microsoftは.NETでBrotliの展開を無効にする方法、BunはBrotliの自動展開を止める設定、Red Hatはプロキシで Content-Encoding: br の付いた通信を除外・拒否する方法を示しています。ただし、Google自身はBrotliに対する緩和策を提供していません。回避策はあくまで修正版を適用するまでのつなぎと考えてください。
修正を適用したら、動作の確認に加えて、10月21日以降に原因のわからない異常終了や不審な通信がなかったかをログで確認し、対応の記録を残します。
開発・保守ベンダーに確認したい8項目
システムの開発や保守を外部に任せている場合は、ベンダーに次の8項目を確認します。
- システム内でBrotli関連のライブラリを使っているか(直接・間接を問わず)
- Node.js、Python、.NETなどのランタイムを使っているか、その版は何か
- 関連ライブラリ、コンテナイメージ、間接的な依存関係に影響はあるか
- 外部APIや外部サイトから取得した圧縮データを展開する処理があるか
- 影響の有無と、その判断根拠(確認した手順と版)
- 修正版の適用状況、未適用なら適用予定日と暫定対策の方針
- 10月21日以降に、原因不明の停止、異常終了、不審な通信がなかったか
- 対応後の動作確認と安全性確認の予定、その結果の報告時期
回答は「影響なし」「対応済み」「影響あり(対策中)」「調査中・未回答」の4つに分けて整理すると、全体の状況がつかみやすくなります。そのうえで、「影響なし」「対応済み」という結論だけで終わらせず、確認した版や方法などの根拠まで受け取ってください。未回答のベンダーには、期限を決めて再度依頼します。
複数のベンダーが関わるシステムでは、Webシステムの開発会社、業務システムの開発会社、クラウドの運用会社のそれぞれに確認が必要です。脆弱性の管理を日常の業務に組み込む方法は、脆弱性管理(VM)の進め方で解説しています。
よくある質問
Webサイトの配信にBrotli圧縮を使っています。対象になりますか?
配信だけなら対象外です。応答を圧縮して配信しているだけでは、この脆弱性は悪用されません。問題になるのは、外部から受け取ったBrotli圧縮データを展開する処理です。ただし、同じサーバーでExpress 5などのフレームワークがリクエスト本文を展開している場合や、外部APIの応答を展開している場合は対象になります。
.NET Frameworkで作ったシステムは影響を受けますか?
影響を受けません。Microsoftは、.NET Frameworkは対象外としています。影響を受けるのは.NET 8/9/10で、修正版は8.0.33/9.0.22/10.0.14です。ASP.NET CoreとHttpClientは既定の設定ではBrotliを自動展開しないため、展開を有効にしているかどうかも確認してください。
修正版を適用すれば、侵害されていないと言えますか?
言えません。修正版で防げるのは、適用した後の攻撃です。適用前に攻撃を受けていたかどうかは、別に調べる必要があります。10月21日以降のログで、異常終了や不審な通信、身に覚えのないプロセスがないかを確認してください。
ベンダーから「影響なし」とだけ返ってきました。それで十分ですか?
十分ではありません。どの版をどう確認したかという根拠を求めてください。Brotliは間接的な依存関係として入っていることが多く、直接使っていないという理由だけで「影響なし」と判断されている場合があります。
参考情報
- JPCERT/CC「BrotliのC言語実装における境界外書き込みの脆弱性(CVE-2026-111497)に関する注意喚起」(2026年10月26日)
- CVE-2026-111497(CVE.org)
- Google Brotli Releases(v1.2.1)
- Node.js October 2026 Security Releases(2026年10月21日)
- .NET Security Advisory for CVE-2026-111497(2026年10月25日)
- Red Hat RHSB-2026-015(2026年10月26日)
- CISA Known Exploited Vulnerabilities Catalog(2026年10月27日追加)
- NCSC New Zealand「CVE-2026-111497 affecting Brotli decoder」(2026年10月29日)
- expressjs/body-parser Issue #780
AEVUSのサーバー・Webシステム診断
AEVUSでは、サーバーやネットワーク、クラウドの設定を確認するプラットフォーム診断と、Webアプリケーションの脆弱性を確認するWeb / Mobile 脆弱性診断を提供しています。侵害が疑われる場合の対応は、SOCサービスの窓口でご相談いただけます。同じ時期に修正版が公開されたPHPの重大な脆弱性(PHP2Shell)への対応は、PHP脆弱性対応サービスをご覧ください。
ベンダーからの回答の読み方がわからない、どのシステムから確認すべきか判断がつかないといった段階でも、お問い合わせフォームからご相談ください。
まとめ
BrotliのCVE-2026-111497は、修正版の公開から1週間で米国CISAのKEVカタログに追加されました。海外の機関は実際の悪用も把握しています。影響を受けるのは、外部から受け取ったBrotli圧縮データを展開するシステムで、Brotliは多くのランタイムやライブラリに組み込まれているため、自社で導入した覚えがなくても使われている可能性があります。
対策は修正版への更新が基本で、コンテナや同梱型のアプリは作り直しが必要です。まず「Brotliを使っているか」「影響を受ける版か」「外部のデータを展開するか」の3点を確認し、開発・保守ベンダーには判断の根拠を含めた回答を求めてください。修正前に外部のデータを展開していた期間がある場合は、10月21日以降のログで侵害の有無も確認しておきましょう。