■3行でわかる
- Brotliの展開処理に深刻な脆弱性
- HTTP関連の幅広い製品に影響
- 修正版と再ビルドが必要な場合も
■CVE-2026-111497でBrotliの展開処理に問題
CVE-2026-111497は、データ圧縮形式BrotliのC言語実装に見つかった脆弱性だ。認証されていない相手からネットワーク経由で悪用され、メモリ破壊や任意コード実行につながるおそれがある。当初はNode.jsの問題として「Node2Shell」と呼ばれたが、影響はHTTPを扱うほかのライブラリやアプリにも広がる。HTTP関連での影響を示す「HTTP2Shell」という呼び方も使われている。
■問題があるのは圧縮データを展開する部分
影響するのは、Brotliでデータを小さくする処理ではなく、圧縮済みのデータを元に戻すデコーダーだ。対象となるのはバージョン1.0.3から1.2.0まで。デコーダーの状態を保つメモリが壊されるほか、メモリ内容の漏えいやサービス停止につながる可能性もある。
■HTTP2ShellでもHTTP/2そのものの欠陥ではない
BrotliはHTTPS通信でやりとりするHTTPコンテンツの圧縮にも使われるため、影響範囲はNode.jsに限られない。名前に「HTTP2」とあるものの、HTTP/2接続自体の問題ではなく、HTTPを扱う製品で使われるBrotliの実装が対象だ。
■深刻度はCVSS 4.0で9.2
脆弱性の基本値はCVSS 4.0で9.2となり、深刻度はCriticalに分類される。悪用された場合、メモリ破壊などに加えて、攻撃者が任意のコードを実行できる可能性がある。
■BrotliとPython向けパッケージに修正版
Brotliはバージョン1.0.10、1.1.1、1.2.1で対策された。Python向けの「Brotli」と「brotlicffi」にも、それぞれ1.2.1と1.2.1.0の修正版が用意されている。
■同梱アプリは再ビルドと再配備が必要
Brotliをアプリやコンテナーに組み込んでいる場合、ライブラリを更新するだけでは足りず、作り直して再配備する必要がある。Bunで作成した単体実行ファイルも、修正版を使って再生成する。すぐに更新できない場合、信頼できないデータのBrotli展開を無効にする方法が示されている。
■Node.jsも3系列でセキュリティ更新
Node.jsは10月21日にセキュリティ更新を公開し、今回の更新全体で10件の脆弱性を修正した。公開されたのは22.23.4、24.22.1、26.12.1で、CVE-2026-111497も修正対象に含まれる。
■よくある疑問
Q. CVE-2026-111497は何に影響する?
A. BrotliのC言語実装にあるデコーダーが対象だ。Node.jsのほか、HTTPを扱うライブラリやアプリにも影響が及ぶ。
Q. HTTP/2を使っていると危険なの?
A. HTTP/2接続そのものの脆弱性ではない。Brotliを利用するHTTP関連製品が影響を受ける。
■まとめ
CVE-2026-111497はNode.jsだけに限らず、Brotliを組み込んだHTTP関連製品にも関わる。修正版への更新に加え、組み込み方によっては再ビルドも必要だ。

今回の件を「Node.jsの脆弱性」で片付けるのは悪手だ。根にあるのはBrotliのC言語デコーダーで、HTTPを扱う別のライブラリやアプリにも使われる。HTTP2Shellという名でも、HTTP/2接続そのものの欠陥ではない。Node.jsだけ更新して対策完了とする説明は、原因と利用先を取り違えさせる。名前が短くても、責任範囲まで縮めるな。
CVSS 9.2って、脆弱性の通知というより避難訓練の放送やんけ。
ワイ、バージョン番号を見ても危険度を読めず、結局「最新版か」だけ確認する係ンゴ。
1.0.3から1.2.0まで対象って、対象ロット確認の告知をソフトの棚に置き換えたみたいやろ。棚の端だけ見て帰るのは危ない、あるあるやん。
すぐ更新できない現場では、信頼できないデータのBrotli展開を止める暫定策が増えるとワイは読むで、ガチ。
認証なしでネット越しに任意コード実行まで届く可能性って、玄関の受付を飛び越して執務室に来る設計で草。
ライブラリだけ更新して同梱アプリを作り直さないの、修理した部品を古い機体に置き忘れるやつで震える。
Brotliって食材みたいな名前やけど、結局どう読むんや? ファッ!?
Node.jsの更新で10件修正、3系列まとめて出るとか、セキュリティ更新が一斉点検の号令みたいやん、逃げ道なしでニッコリ。
