HTTP2Shellとは?Brotliの脆弱性の影響とPC・AIツールの確認方法

2026年10月、データ圧縮の部品「Brotli」に見つかった脆弱性が「HTTP2Shell」と呼ばれ、Node.jsやPython、Bun、Envoyなど、HTTPで通信する幅広いソフトに影響が広がっています。最初はNode.jsの問題として「Node2Shell」と呼ばれていましたが、影響がNode.jsの外へ広がったことで呼び名が変わりました。名前からはHTTP/2の通信の欠陥に見えますが、正体は圧縮データを展開する部品の不具合です。
HTTP2Shellでは、サーバーだけでなく、外部からデータを取りにいくアプリやAIツールの側も攻撃を受けます。この記事では、HTTP2Shellの正体と影響を受けるソフト、社員のPCとAIツールで確かめること、会社として取るべき対策を解説します。必要な対策は、Brotliを内蔵したソフトを修正版へ更新し、再起動や作り直しまで済ませることです。記事を読めば、自社で確かめるべき場所と最初の一手がわかります。
HTTP2Shellとは、Brotliの脆弱性CVE-2026-111497の通称のこと
HTTP2Shellは、Googleが開発するデータ圧縮のライブラリ「Brotli」に見つかった脆弱性の通称です。正式な識別番号はCVE-2026-111497で、細工した圧縮データを展開させると、プログラムのメモリが壊されます。最悪の場合は、攻撃者が遠隔から任意のプログラムを実行できてしまいます。
影響を受けるのはBrotliの1.0.3から1.2.0までで、修正版の1.0.10・1.1.1・1.2.1が2026年10月21日に公開されました。深刻度の国際指標CVSS(バージョン4.0)では、10点満点中9.2点の「緊急(クリティカル)」と評価されています。
HTTP2Shellの正体を理解するための要点は、以下のとおりです。
- HTTP/2の欠陥ではなく圧縮データの展開の不具合
- Node2ShellからHTTP2Shellへ呼び名が変わった
- OpenAIのセキュリティ研究者が見つけて報告した
HTTP/2の欠陥ではなく圧縮データの展開の不具合
HTTP2Shellは、Webの通信の決まりであるHTTP/2そのものの欠陥ではありません。不具合があるのは、Brotliで圧縮されたデータを元に戻す「展開」の処理です。CVEの記録も、問題の場所をBrotliの展開を担うプログラムとしており、HTTP/2には触れていません。
Brotliで圧縮されたデータは、HTTP/1.1でもHTTP/2でも「br」の記号を付けてやり取りされます。HTTP/2の通信を止めても、Brotliのデータを展開する処理が残っていれば攻撃は防げません。
原因は、形式の誤ったデータを受け取ったときの判断の誤りです。修正前のBrotliは、展開を止めるべき場面でも「データの続きがまだ届いていない」と判断して処理を続け、8バイトしかない作業用の領域の外へデータを書き込んでいました。
出典:GitHub Advisory Databaseの勧告(2026年10月22日)、Node.jsの公式発表(2026年10月21日)、Brandefenseの解説(2026年10月24日)
Node2ShellからHTTP2Shellへ呼び名が変わった
最初の呼び名のNode2Shellは、セキュリティ企業Impervaの調査チームが、公式のNode.jsで攻撃が成立することを確かめた検証に付けた名前です。その後、Python用の部品やBun、Envoyなど、HTTPで通信するNode.js以外のソフトにも影響が広がりました。影響の広がりを表す呼び名として、2026年10月23日ごろからHTTP2Shellが使われています。
Node2Shell、HTTP2Shell、Brotliの脆弱性は、どれも同じCVE-2026-111497を指します。名前の「Shell」は、攻撃者がサーバーなどを遠隔から操作できる状態を指す言葉です。呼び名ごとに別の脆弱性があるわけではないため、対策は1つで足ります。
出典:Impervaの技術解説(2026年10月22日)、Upwindの解説(2026年10月24日)
Brotliの脆弱性Node2Shellとは?影響範囲と今すぐの対策を解説
OpenAIのセキュリティ研究者が見つけて報告した
HTTP2Shellを見つけて報告したのは、OpenAIのセキュリティ研究者です。Node.jsの公式発表の報告者の欄には、AIでプログラムの安全性を点検するOpenAIの製品「Codex Security」の研究者が記載されています。Envoyの勧告も、発見者としてOpenAIのセキュリティ研究チームを記しています。
AIのセキュリティ製品を手がけるチームが、多くのソフトが共通で使う部品の穴を見つけた例です。共通の部品の修正は、部品を組み込んだ各製品が取り込むまで利用者に届きません。HTTP2Shellの対応が製品ごとに続いているのは、共通の部品に見つかった穴だからです。
出典:Envoyのセキュリティ勧告(2026年10月23日)
HTTP2Shellが危険とされる理由
HTTP2Shellを突かれてサーバーやアプリを乗っ取られると、情報の抜き取りや改ざん、ほかのシステムへの侵入につながります。2026年10月24日の時点で実際の攻撃への悪用は確認されていませんが、公式のNode.jsで攻撃が成立することは検証で示されています。HTTP2Shellがとくに警戒される理由は、以下の3つです。
- サーバーもアプリも攻撃を受ける
- 通信のソフトが自動で展開する
- 部品の複製が多く見つけにくい
サーバーもアプリも攻撃を受ける
HTTP2Shellの攻撃には、2つの向きがあります。1つ目は、攻撃者が細工した圧縮データをサーバーへ送り、サーバーに展開させる向きです。2つ目は、攻撃者が用意したサーバーが、データを取りにきたアプリやツールへ細工した応答を返す向きです。
2つ目の向きでは、Webサービスを持たない会社でも、社員のPCで動くツールやアプリが攻撃の対象になります。Webサイトの入口に置く防御の仕組み(WAF)は外から届く依頼を調べるため、アプリが取りにいった応答は守る範囲の外にあります。
通信のソフトが自動で展開する
HTTPの通信を担うソフトには、相手に「Brotliで圧縮して送ってよい」と伝え、届いた圧縮データを自動で展開するものがあります。Bunのfetchは、標準の設定でBrotliの受け取りを相手に伝え、Brotliで圧縮された応答を自動で展開します。Pythonの通信ライブラリのurllib3・requests・httpx・aiohttpも、Brotliの部品が入っていれば自動で展開する作りです。
開発者がBrotliを使うと意識していなくても、通信のソフトが裏側でBrotliを展開しています。使っている自覚のない場所に攻撃の入口ができるため、HTTP2Shellは見落とされやすい脆弱性です。
出典:Bunのセキュリティ勧告(2026年10月23日)、Aikidoの技術解説(2026年10月23日)
部品の複製が多く見つけにくい
Brotliは、Node.jsやBun、Python用の部品、Envoyなどの中に、それぞれ別々の複製として組み込まれています。OSのbrotliを更新しても、Bunで作った実行ファイルのように自分の中にBrotliを抱えたプログラムは直りません。
脆弱性を調べるツール(スキャナ)にも、見つけられない複製があります。Python用の部品は、公表の直後に脆弱性の情報の登録が追いつかず、スキャナで検出されない場合がありました。ツールで「問題なし」と出ても、手作業でのバージョン確認と組み合わせると見落としを防げます。
出典:Brandefenseの解説(2026年10月24日)、Aikidoの技術解説(2026年10月23日)
HTTP2Shellの影響を受けるソフトと修正版
HTTP2Shellの修正は、Brotliを組み込んだソフトごとに別々に出ています。影響を受けるソフトの確認ポイントは、以下の3つです。
- 修正版が出ている主なソフト
- Linuxやcurlは配布元の修正を確認する
- 公式の発表がまだないソフト
修正版が出ている主なソフト
2026年10月25日の時点で修正版が出ている主なソフトは、以下の表のとおりです。
| ソフト | 影響を受ける条件 | 修正版 |
|---|---|---|
| Brotli本体 | 1.0.3〜1.2.0 | 1.0.10・1.1.1・1.2.1 |
| Node.js | 22系・24系・26系(サポート終了の系統を含む) | 22.23.4・24.22.1・26.12.1 |
| Python用のBrotli | 1.0.3〜1.2.0 | 1.2.1 |
| Python用のbrotlicffi | 1.0.3以上・1.2.1.0未満 | 1.2.1.0 |
| Bun | 1.0.21以上・1.4.4未満 | 1.4.4 |
| Envoy | Brotliの展開を設定している場合 | 1.40.0・1.39.3・1.38.6・1.37.8・1.36.12 |
| Istio | Brotliの展開を有効にしている場合 | 1.31.2・1.30.6・1.29.9 |
Node.jsの20系以前と21系・23系・25系はサポートが終わっており、修正版は出ません。Bunで作った実行ファイルは、Bunを1.4.4へ更新したあとに作り直すまで、修正前のBrotliを内蔵したままです。
出典:Bunのセキュリティ勧告(2026年10月23日)、Envoyのセキュリティ勧告(2026年10月23日)、Istioのセキュリティ情報(ISTIO-SECURITY-2026-007)
Linuxやcurlは配布元の修正を確認する
Linuxに標準で入るbrotliのパッケージは、配布元ごとに対応が分かれています。2026年10月24日の時点で、DebianとAlpine Linuxは修正版を公開済みでした。Red Hat Enterprise LinuxとUbuntuは、同じ時点で修正版の掲載がまだありません。
通信の道具curlは、組み込んだBrotliが古ければ影響を受けます。curlが使うbrotliの部品を修正版へ更新するか、提供元が出す修正版のcurlへ入れ替える必要があります。Linuxの配布元が提供するNode.jsにもOSのbrotliを使って動くものがあるため、OS側の更新もあわせて確認しましょう。
出典:Debianの脆弱性追跡ページ、Brandefenseの解説(2026年10月24日)、Upwindの解説(2026年10月24日)
公式の発表がまだないソフト
ChromeとFirefoxについては、2026年10月24日の時点で、提供元からHTTP2Shellの影響を示す公式の発表は出ていません。Linux向けのFirefoxのパッケージでは、配布元によって影響ありと影響なしの判定が分かれています。Electron(Node.jsとブラウザの部品でデスクトップアプリを作る仕組み)で作られたアプリも、Electronからの修正版の正式な案内は確認できていません。
公式の発表がなくても、影響がないとは言い切れない状態です。ブラウザやデスクトップアプリ、スマートフォンは自動更新を有効にし、提供元が修正を配ったときにすぐ反映される状態にしておくことが基本の備えです。
出典:Amazon Linuxの脆弱性情報、Brandefenseの解説(2026年10月24日)
社員のPCとAIツールでHTTP2Shellを確認する方法
HTTP2Shellは外部からデータを取りにいくツールも攻撃の対象にするため、サーバーだけでなく社員のPCも確認が必要です。社員のPCとAIツールで確認したい点は、以下の3つです。
- Claude Code本体を最新版へ更新する
- MCPサーバーとPythonのツールの部品を更新する
- PCに入っている部品のバージョンを確かめる
Claude Code本体を最新版へ更新する
Claude Codeの本体は、JavaScriptの実行環境Bunで作った実行ファイルとして配布されています。Bunの1.4.3以前は修正前のBrotliを内蔵しているため、修正前のBunで作られた版のClaude Codeは、修正前のBrotliを内蔵している可能性があります。Claude CodeのURLを指定してWebページを取得する機能も、外部のデータを取り込む使い方の1つです。
ネイティブ版のClaude Codeは自動で最新版へ更新されますが、自動更新を止める設定をしていると古い版のまま残ります。ターミナルで「claude update」と入力すると、すぐに最新版へ更新できます。HomebrewやWinGetで入れた場合は自動では更新されないため、それぞれの更新の命令で手動の更新が必要です。
Claude Codeの公式の更新履歴には、2026年10月25日の時点でBunの修正についての記載が見当たりません。Claude Code本体の安全は、PCのNode.jsの更新ではなく、Claude Code自体を最新版に保つことで守ります。
出典:Bunの公式発表(2025年12月)、Claude Codeの公式ドキュメント(Advanced setup)、Claude Codeの公式ドキュメント(Tools reference)、Claude Codeの更新履歴
MCPサーバーとPythonのツールの部品を更新する
MCPサーバーには、Node.jsに付属するnpxと呼ばれる命令で起動し、PCのNode.jsの上で動くものがあります。たとえばブラウザを操作するPlaywright MCPは、Node.js 18以降を必要とし、npxで起動する設定が標準です。MCPサーバーを使っているPCでは、Node.jsを使っている系統の修正版へ更新し、AIツールを再起動します。
Pythonで動くAIツールや社内の自動化の仕組みは、Python用のBrotliとbrotlicffiが確認の対象です。パッケージ管理ツールで入れたbrotliやcurl、ほかのアプリに同梱されたNode.jsも、修正前の部品を含む場合があります。
MCPサーバーとは?仕組みと安全な選び方・代表例を徹底解説!
PCに入っている部品のバージョンを確かめる
PCに入っているNode.jsとPython用のBrotliのバージョンは、次の手順で確認できます。
- Windowsならコマンドプロンプト、Macならターミナルを開く
- 「node -v」と入力して、Node.jsのバージョンを表示する
- 「pip show Brotli brotlicffi」と入力して、Python用のBrotliのバージョンを表示する
- 表示された番号を、修正版の番号と比べる
番号が表示されない部品は、PCに入っていません。アプリに同梱された部品はこの方法では見つからないため、アプリ自体を最新版へ更新しておくことが確実です。
HTTP2Shellへの対策
HTTP2Shellの根本的な対策は、Brotliを組み込んだすべてのソフトを修正版へ更新することです。会社として進めたい対策は、以下の3つです。
- 修正版へ更新して再起動と作り直しまで済ませる
- 外部に任せているシステムは委託先に確認する
- すぐに更新できない場合は両方向の通信で展開を止める
修正版へ更新して再起動と作り直しまで済ませる
更新は、信頼できない相手からBrotliのデータを受け取るシステムを優先します。先に更新したいものは、以下のとおりです。
- 外部からの依頼でBrotliの本文を受け付けるWebサービスやAPI
- 自社で管理していないサーバーからデータを取りにいく仕組み
- 外部の情報を取り込む開発用の環境や社員のPC
更新したら、動いているプログラムを再起動してください。動き続けているプログラムは、再起動するまで修正前のBrotliを使い続けるためです。コンテナや、Bunで作った実行ファイルは、修正版を土台にして作り直す必要があります。
出典:Brandefenseの解説(2026年10月24日)
外部に任せているシステムは委託先に確認する
開発や運用を外部に任せている場合に、委託先へ確認したい項目は以下のとおりです。
- HTTP2Shell(CVE-2026-111497)の影響を受ける部品を使っているか
- 使っているNode.jsやPython用のBrotli、Bunのバージョンと更新の予定日
- コンテナや実行ファイルを修正版で作り直したか
- 更新後にプログラムを再起動したか
修正は、各ソフトの提供元の公式ページから入手します。「HTTP2Shell」の名前を付けたGitHubのリポジトリや暗号資産は今回の脆弱性の修正と関係がないため、公式ではない入手先は使わないようにしましょう。
出典:Brandefenseの解説(2026年10月24日)
すぐに更新できない場合は両方向の通信で展開を止める
更新までに時間がかかる場合は、Brotliのデータを展開しないようにして攻撃の入口を狭めます。受け取る側と取りにいく側で取れる手段は、以下のとおりです。
- 受け取る側:入口の中継サーバーやWAFで、Brotliで圧縮された依頼の本文を拒否する
- 取りにいく側:通信のソフトで、Brotliで圧縮された応答を展開する前に拒否する
- Bunを使う場合:通信ごとにBrotliの展開を止める設定を使う
受け取りたい圧縮の形式からBrotliを外す設定だけでは、相手がBrotliで送ってきた場合に防げません。根本的な解決は修正版への更新だけで、暫定的な備えは更新までのつなぎにとどまります。
出典:Aikidoの技術解説(2026年10月23日)、Bunのセキュリティ勧告(2026年10月23日)
HTTP2Shellに関するよくある質問
HTTP2Shellについて、よくある質問と答えは以下のとおりです。
- PHP2Shellとは別の脆弱性ですか
- ApacheやNginxのWebサーバーも影響を受けますか
- HTTP2Shellは実際に攻撃に使われていますか
PHP2Shellとは別の脆弱性ですか
PHP2Shellは、HTTP2Shellとは別の脆弱性です。PHP2Shellは、2026年10月にPHP本体で見つかった2つの緊急の脆弱性(CVE-2026-109618・CVE-2026-109619)の呼び名で、PHPで動くサイトが対象になります。名前が似ていて公表の時期も重なりますが、対象も修正版も異なるため、両方の対策を別々に進める必要があります。
PHP2Shellとは?緊急のPHP脆弱性の影響と今すぐの対策を解説
ApacheやNginxのWebサーバーも影響を受けますか
ApacheやNginxは、標準の設定ではBrotliで圧縮された依頼の本文を展開しないため、受け取りの経路での影響は限られます。ただし、同じサーバーでNode.jsやPythonのプログラムが動いていれば、そのプログラムは確認の対象です。レンタルサーバーを使っている場合は、サーバー会社の案内を確認しましょう。
出典:Upwindの解説(2026年10月24日)、Brandefenseの解説(2026年10月24日)
HTTP2Shellは実際に攻撃に使われていますか
2026年10月24日の時点で、HTTP2Shellが実際の攻撃に使われた例は確認されていません。一方で、公式のNode.jsで攻撃者のプログラムを動かせることは検証で示されており、攻撃の方法の研究は進んでいます。攻撃の報告が出る前に修正版への更新を終えておけば、攻撃が広まっても被害を受けずに済みます。
HTTP2Shellは修正版への更新と再起動で防げる
HTTP2Shell(CVE-2026-111497)は、HTTP/2の欠陥ではなく、Brotliの展開の処理に見つかった脆弱性です。サーバーだけでなく、外部からデータを取りにいくアプリやAIツールも攻撃を受けるため、社員のPCまで確認の対象になります。
HTTP2Shellの被害を防ぐためにやることは、以下の4つです。
- Brotliを組み込んだソフトが動いている場所を洗い出す
- 使っているソフトの修正版へ更新する
- 更新後にプログラムを再起動し、コンテナや実行ファイルを作り直す
- Claude Codeなどのツールとブラウザ・アプリを最新版に保つ
実際の攻撃はまだ確認されていませんが、攻撃が成立することは検証で示されています。修正版への更新と再起動を済ませれば、HTTP2Shellによる被害は防げます。まずは社員のPCでClaude CodeとNode.jsのバージョンを確かめるところから、今日始めましょう。



