【Brotli脆弱性】HTTP2Shell(CVE-2026-111497)とは?影響範囲と今すぐやるべき更新対策

【Brotli脆弱性】HTTP2Shell(CVE-2026-111497)とは?影響範囲と今すぐやるべき更新対策 news
スポンサーリンク

2026年10月下旬、通信データの圧縮に使われる「Brotli(ブロトリ)」に深刻な脆弱性が見つかり、SNSで「HTTP2Shell」と呼ばれて話題になっています。細工された圧縮データによってメモリが破壊され、条件次第では遠隔からコードを実行されるおそれがあります。

しかも、サーバーだけでなく、データを受け取る側のソフト(クライアント)も狙われる可能性があります。名前は物々しいですが、落ち着いて内容を整理すれば、やるべきことは「更新」が中心です。この記事では、初心者の方にもわかりやすく、HTTP2Shellの正体と対策をまとめます。

スポンサーリンク
スポンサーリンク

HTTP2Shellとは?

HTTP2Shellは、HTTP/2という通信方式そのものの欠陥ではなく、Brotliという圧縮ライブラリの欠陥につけられた通称です。脆弱性の識別番号は「CVE-2026-111497」で、もともとはNode.jsの問題として「Node2Shell」とも呼ばれていました。同じ脆弱性であり、別の問題が増えたわけではありません。

影響がNode.jsだけでなく、Brotliを使う多くのソフトに広がっているため、より広い名前で呼ばれるようになりました。

 

どうやって見つかった?

この脆弱性は、レッドチーム演習(攻撃側の視点で行う模擬攻撃テスト)の最中に見つかりました。報告したのは、OpenAIのCodex Securityの研究者です。

発見者の説明によると、根本の問題自体は2月にBrotliのソースコード上で修正されていました。ただ、当時はセキュリティ上の問題になるとは知られておらず、新しいリリースも出ていませんでした。そのため、古い版を使い続けるソフトが多く残っていました。

その後、10月21日にBrotli 1.2.1が公開され、Node.jsも同日にセキュリティ更新を出しています。

 

影響を受けるバージョンと深刻度

対象はGoogle Brotliのバージョン1.0.3〜1.2.0で、修正版は1.0.10、1.1.1、1.2.1です。認証なしで遠隔から攻撃される可能性があり、クラッシュやメモリ内容の漏えい、条件次第でコード実行につながるとされています。

深刻度の評価は組織によって異なり、報道ではGoogleがCVSS 4.0で9.2(Critical)、Red HatなどがCVSS 3.1で8.1(Important)とされています。

 

なぜ影響範囲が広いのか

Brotliは、WebサイトやAPIの通信を軽くするために、さまざまなソフトが使う圧縮方式です。攻撃の入り口は、大きく2つあります。

  • サーバーが狙われる場合:圧縮データを受け付ける更新前のサーバーが、悪意あるクライアントに乗っ取られる可能性があります。
  • クライアントが狙われる場合:圧縮データを受け付ける更新前のクライアント(たとえば「curl –compressed」)が、悪意あるサーバーに乗っ取られる可能性があります。

どちらも、攻撃者がアカウントを作る必要はありません。また、Brotliは他のソフトに組み込まれているため、ソフトごとに更新が出るのを待つ必要があります。

 

影響を受けるソフトと修正版の一覧

公式の情報では、次の修正版が公開されています。

  • Node.js:22.23.4、24.22.1、26.12.1
  • Bun:1.4.4(Brotli 1.2.1を含む)
  • Envoy Proxy:1.40.0、1.39.3、1.38.6、1.37.8
  • Istio:1.29.9、1.30.6、1.31.2
  • Google Brotli(本体):1.0.10、1.1.1、1.2.1

Envoy ProxyとIstioは、Brotliの展開を設定している環境が対象です。Istioの1.29系はサポート終了のため、対応する系列への移行が案内されています。Node.jsやBunを組み込んだツール、Webサービス、バックグラウンド処理のワーカーも確認対象です。

公式ページには「その他の確認対象ソフト」の項目もあるため、利用中のソフトがある場合は、そちらも確認してください。

 

いま攻撃されている?

10月24日時点で確認できた範囲では、実際の攻撃を確認したという公式情報は見つかっていません。一方で、悪用コードの実証が報じられたり、信頼できる実証コードは公開されていないとの見解が出たりと、情報が分かれています。

「今日すぐ被害に遭う」と過度に恐れる必要はありませんが、状況が変わる可能性があるため、早めの更新が安心です。

 

一般ユーザーがやるべき対策

ここまで読んで、「難しそう」と感じた方もいるかもしれません。ご安心ください。普段お使いのパソコンやスマホの利用者が、いまできる対策は「更新を確認して、出ていれば適用する」ことです。サーバーの設定変更などは、開発者や管理者の方が行う作業で、一般の方が自分で行う必要はありません。

  • OS(Windows、macOS、iOS、Androidなど):アップデートが届いていれば適用します。
  • ブラウザ(Chrome、Edge、Firefoxなど):最新版になっているか確認します。
  • アプリ:普段よく使うアプリを、ストアや設定画面から更新します。Node.jsやBunを内蔵するソフトは、開発元からの更新を確認してください。

なお、ブラウザやOSが今回の脆弱性の対象かどうかは、公式の修正版一覧には含まれておらず、現時点では確認できていません。一般的な安全対策として、最新版に保つことをおすすめします。

SNSでは、Discord、Slack、VS Codeなどのソフトを挙げる投稿もあります。これらは一次情報で確認できていないため、各ソフトの公式情報で更新の有無を確認してください。

ただし、すべてのソフトにすでに修正版が出ているわけではありません。更新がまだ届いていないソフトは、開発元からの案内を待ち、更新が出たら早めに適用するようにしましょう。また、見覚えのないリンクやファイルを開かないといった、日ごろの基本的な注意も続けてください。

 

開発者・サーバー管理者向けの対策

まずは更新:上の修正版に更新し、コンテナや実行ファイルは作り直します。古いビルドを使っているすべてのサービス、ワーカー、定期ジョブ、レプリカを再起動・再デプロイし、実行中のものが修正版になっているか確認してください。

Pythonの場合:brotliは1.2.1、brotlicffiは1.2.1.0への更新が案内されています。

Linuxの場合:「dpkg -l 'libbrotli*'」や「rpm -q brotli」で、導入されているバージョンを確認できます。

すぐに更新できない場合の暫定策:信頼できないデータのBrotli展開だけを無効にし、gzipやdeflateは使えるままにします。

  • 受信するリクエスト:「Content-Encoding: br」のリクエストを、展開される前に拒否します。
  • 取得する応答:HTTPクライアントのBrotli自動展開を無効にします。「Accept-Encoding」からbrを外すだけでは、サーバー側がBrotliで返すのを止められません。
  • Envoy・Istio:リクエスト・応答の両方で、Brotli展開のフィルターを無効にします。
  • ファイルなど:信頼できないBrotliデータの処理は、修正されるまで停止します。

CDNやWebサーバーのBrotli圧縮を止めても、受信側やクライアント側の展開は止まりません。Next.jsを使っている場合は、Node.jsが修正されるまで内蔵の画像最適化を無効にする方法も案内されています。

なお、Node.js 24.22.1は修正済みなのに、Brotliのバージョン表示が1.2.0のままという報告があります。表示だけで「未対策」と判断しないようにしましょう。

 

まとめ

HTTP2Shell(CVE-2026-111497)は、Brotliのデコーダにある脆弱性で、Node.js、Bun、Envoy、Istioなど多くのソフトに影響します。修正版はすでに公開されているため、最大の対策は更新です。ご自身で使っているソフトの公式情報を確認し、更新を進めてください。開発や運用に関わる方は、再起動・再デプロイまで済ませて、初めて対策完了です。状況は日々変わるため、最新の公式情報も合わせてご確認ください。

【引用元】

スポンサーリンク
スポンサーリンク
news
シェアする
enjoypclifeをフォローする

コメント