Googleのデータ圧縮形式「Brotli」のC言語実装に、認証なしで外からメモリを壊せる脆弱性「CVE-2026-111497」が見つかりました。最初にOpenAIが「Node.js」の問題として報告したため「Node2Shell」と呼ばれ、いまはセキュリティ企業のAikido Securityなどが「HTTP2Shell」と呼び始めています。
Brotliの展開処理に穴 深刻度はCVSS 9.2だ
穴があったのは圧縮する側ではなく、圧縮データを元に戻すデコーダーです。悪用されるとメモリの破壊や中身の漏洩、サービス停止、さらに任意のコードの実行につながるおそれがあります。
深刻度を表す「CVSS 4.0」の基本値は9.2で、いちばん上の「Critical」に当たります。BrotliはHTTPS通信でWebページを圧縮して送るときにも使われているので、Node.js以外の製品にも影響が広がっています。
なお名前に「HTTP2」と入っていますが、HTTP/2の通信そのものの欠陥ではありません。Webの仕組み全体に影響が大きいことから付いた呼び名です。
v1.0.3からv1.2.0が対象 Pythonの2つの部品も入る
影響を受けるのはBrotliのv1.0.3からv1.2.0までです。10月21日に出たv1.0.10・v1.1.1・v1.2.1で直っています。
| 対象 | 影響を受ける版 | 直った版 |
|---|---|---|
| Brotli本体(C言語) | v1.0.3〜v1.2.0 | v1.0.10・v1.1.1・v1.2.1 |
| Pythonの「Brotli」 | 同じソースから作られている | v1.2.1 |
| Pythonの「brotlicffi」 | 同じソースから作られている | v1.2.1.0 |
見落としやすいのは、Brotliを中に抱えたアプリやコンテナです。部品を更新しただけでは直らず、作り直して配り直す必要があります。「Bun」で作った単体の実行ファイルも同じです。
Brotliの対象の版と直った版
| 対象 | 影響を受ける版 | 直った版 |
|---|---|---|
| Brotli本体(C言語) | v1.0.3〜v1.2.0 | v1.0.10・v1.1.1・v1.2.1 |
| Pythonの「Brotli」 | 同じソースから作られている | v1.2.1 |
| Pythonの「brotlicffi」 | 同じソースから作られている | v1.2.1.0 |
編集部のMacで確かめた 3か所とも1.2.0のままだった
2026年10月26日12時台に、編集部が普段AIツールの開発に使っているMacで版を調べました。Node.jsのv25.2.1が中に持つBrotliは1.2.0、macOS標準のPython 3に入っていたBrotliも1.2.0、Homebrewで入れたBrotliも1.2.0でした。3か所とも影響を受ける版です。
どれも自分で入れた覚えが薄い部品でした。PythonのBrotliはWebから資料を取ってくるツールを入れたときに一緒に入り、Node.jsは中に組み込みの形で持っています。同じ時点でPythonの配布元には1.2.1が、Homebrewにも1.2.1が出ていて、更新はすぐできる状態でした。
AIが脆弱性を見つける流れはOpenAIだけではありません。AnthropicもOSSの穴を探す取り組みを出しています。見つかる数が増えるほど、使う側の更新が追いつくかが問われます。

対策はv1.2.1への更新 すぐ無理なら展開を止める
まずは手元の版を調べるところからです。Node.jsなら「node -p process.versions.brotli」、Pythonなら「import brotli」のあと版を表示させると1行で分かります。
- Pythonの「Brotli」をv1.2.1、「brotlicffi」をv1.2.1.0へ上げる
- Brotliを同梱したアプリとコンテナは作り直して配り直す
- Bunで作った単体の実行ファイルも直った版で作り直す
- Node.jsは公式の告知で直った版を確かめてから上げる
すぐに更新できないときは、信頼できないデータに対してだけBrotliの展開を止めておく手があります。gzipやdeflateといったほかの圧縮形式はそのまま使ってかまいません。社内でAIに作らせた小さなツールほど台帳に載っていないので、今週中に一度洗い出しておきたいところです。
- デコーダー
- 圧縮されたデータを元の状態に戻す処理。今回のBrotliの穴は圧縮する側ではなくこちらで見つかった
AI導入の現場で気になるのは、CodexやClaude Codeで作った社内の小さなツールです。Node.jsやPythonで動き、作った本人しか中身を知らないことが多い。情報システム部門の台帳に載っていないので、今回のような部品の更新から漏れる可能性があります。AIでツールを作らせる会社ほど、どの部品で動いているかを1か所に書き残す決まりを先に作っておくと、こうした穴が出た日に半日で洗い出せるとみています。
- Node2ShellとHTTP2Shellは別の脆弱性?
- 同じ脆弱性です。番号はCVE-2026-111497で、OpenAIが最初にNode.jsの問題として報告したためNode2Shellと呼ばれました。のちにHTTPを扱う多くのライブラリにも影響すると分かり、Aikido SecurityなどがHTTP2Shellと呼び始めています。HTTP/2の通信そのものの欠陥ではありません。
- Brotliの脆弱性はどの版を入れれば直る?
- Brotli本体はv1.0.10・v1.1.1・v1.2.1で直っています。どれも10月21日に出た版です。Pythonの部品は「Brotli」がv1.2.1、「brotlicffi」がv1.2.1.0です。影響を受けるのはv1.0.3からv1.2.0までなので、手元の版がこの間にあれば上げます。
- すぐにBrotliを更新できないときはどうする?
- 信頼できないデータに対してだけBrotliの展開を止めます。gzipやdeflateといったほかの圧縮形式は使ったままでかまいません。Brotliを中に抱えたアプリやコンテナ、Bunで作った単体の実行ファイルは、部品の更新だけでは直らないので作り直して配り直す必要があります。
この記事の出典
補助資料
- [1]窓の杜この記事の元にした報道
出典の最終確認日:2026年10月26日
