本文へスキップ

Brotli脆弱性(HTTP2Shell)の確認と対応方法

  • 公開日
  • 約11分で読めます
Brotli脆弱性(HTTP2Shell)の確認と対応方法 のイメージ画像
目次9

2026年10月26日、JPCERT/CCは、データ圧縮のしくみ「Brotli(ブロトリ)」の脆弱性 CVE-2026-111497 について注意喚起を出しました。翌27日には、米国のCISAが「実際に悪用が確認された脆弱性」の一覧に加えています。一部では「HTTP2Shell」「Node2Shell」とも呼ばれています。

Brotliは、Node.js、.NET、Python、Linuxなど、多くの仕組みの中に部品として組み込まれています。この記事では、自社が影響を受けるかの見分け方と、対応の手順を順番に説明します。

この記事のポイント

  • Brotliそのものを入れた覚えがなくても、Node.js・.NET・Python・Linuxの中に入っていることがあります。確かめるのは「Brotliの版」ではなく「それぞれの仕組みの版」です。
  • Node.js → 22.23.4/24.22.1/26.12.1以降へ。.NET → 8.0.33/9.0.22/10.0.14以降へ。Python → brotli 1.2.1以降へ。
  • 危ないのは、外から届いた圧縮データを「展開する」ときです。自社サイトの表示を圧縮して送っているだけなら、影響はないとされています。
  • 更新したら、プログラムの再起動やコンテナの作り直しまで行いましょう。

9.2

深刻度(CVSS 4.0・緊急)

悪用確認

CISAが10月27日に認定

回避策なし

基本は修正版への更新(JPCERT/CC)

ことばの説明

Brotli=Googleが作った、データを小さくする(圧縮する)しくみです。Webサイトの表示を速くするためによく使われ、通信では「br」という名前で出てきます。

展開(てんかい)=圧縮されたデータを、もとの大きさに戻すことです。今回の弱いところは、この「展開」の部分にあります。

脆弱性(ぜいじゃくせい)=システムの"弱いところ"。悪い人に見つかると、そこから攻撃されるおそれがあります。

どんな脆弱性? なぜ危ないの?

JVN(日本の脆弱性情報サイト)によると、Brotliの展開処理に、決められた範囲の外にデータを書きこんでしまう不具合がありました。細工した圧縮データを読み込ませると、次のようなことが起きるおそれがあります。

プログラムを勝手に動かされる

攻撃者が、サーバーの上で好きな命令を実行できてしまうおそれがあります。

情報をぬすみ見られる

プログラムが使っているメモリの中身が、外にもれるおそれがあります。

サービスが止まる

プログラムが異常終了し、サイトやシステムが使えなくなるおそれがあります。

すでに攻撃が始まっています

CISAは10月27日、この脆弱性を「悪用が確認された脆弱性」に加えました。海外のセキュリティ会社は、10月26日に修正前のNode.js(24.22.0)をねらった攻撃の試みを観測したと報告しています。JPCERT/CCは「回避策はなく、修正版への更新を」と呼びかけています。

どんなときに危ない? 「展開する側」かどうかがポイント

弱いところは「展開」の処理だけにあり、「圧縮」の処理にはありません。そのため、自社のシステムが外から届いた圧縮データを展開しているかで、危なさが変わります。

受け取ったデータを展開する 要注意

利用者や取引先から送られてくる圧縮データ(br)を、サーバーが自動で展開する設定の場合です。例:Node.jsのExpress 5、Koa、ASP.NET Coreのリクエスト展開を有効にしている場合など。

ほかのサーバーからデータを取りにいく 要注意

外部のサイトやAPIから情報を取ってくる機能です。相手のサーバーが細工した圧縮データを返してくるおそれがあります。例:Webhook、URLを入力すると内容を読み込む機能など。

自社サイトの表示を圧縮して送るだけ 影響は小さい

圧縮だけで展開はしないため、今回の弱いところは使われないとされています。ただし、同じサーバーで動くほかのプログラムが展開している場合もあるので、更新はしておきましょう。

※「どの機能が、どこからデータを受け取っているか」は、外からは見分けにくいものです。わからなければ、使っている仕組みをすべて更新するのがいちばん確実です。

対象の仕組みと、移る先

Brotli本体の修正版は、1.0.10/1.1.1/1.2.1(10月21日公開)です。ただし多くの場合、Brotliは別の仕組みの中に入っているので、次の表で「使っている仕組みの版」を確かめます。

仕組み状態移る先(修正版)補足
Node.js 22・24・26要更新22.23.4/24.22.1/26.12.1以降10月21日の更新で対応済み
Node.js 20以前修正版なしサポート中の版へバージョンアップサポート終了のため直りません
.NET 8・9・10要更新8.0.33/9.0.22/10.0.14以降10月25日の臨時更新。.NET 8・9は11月10日にサポート終了
.NET Framework対象外—Microsoftの発表より
Python(brotli)要更新brotli 1.2.1/brotlicffi 1.2.1.0以降requests・httpx・aiohttpなどが自動で使うことがあります
Linux(Ubuntu・Debianなど)配布元しだい各配布元の修正済みパッケージUbuntu 22.04/24.04、Debian 12/13は修正版あり

このほか、Bun、Envoy、Istio、Go言語のBrotli部品なども修正版が出ています。Node.jsの今回の更新の全体は「Node.js脆弱性の対応方法(2026年10月)」にまとめています。

Brotliの版番号だけでは判断できません

たとえばNode.jsでは、修正前も修正後も、中に入っているBrotliの版の表示は同じ「1.2.0」のままです。確かめるときは、Node.jsや.NETそのものの版を見てください。

これまでの流れ

  • GoogleがBrotliの修正版を公開。同じ日にNode.jsも修正版を公開
  • CVE番号が公開。Python向けの修正版(brotli 1.2.1)も公開
  • Microsoftが.NETの臨時更新を公開
  • JVN・JPCERT/CCが注意喚起。海外で攻撃の試みが観測される
  • CISAが「悪用が確認された脆弱性」に追加(米政府機関の対応期限は11月10日)

自社が影響を受けるか確かめて、対応する5ステップ

  1. 使っている仕組みを洗い出す

    自社のWebサイトや業務システムが、Node.js・.NET・Pythonのどれで動いているかを確認します。わからなければ、開発会社や保守会社に聞くのがいちばん早いです。

  2. それぞれの版を確認する

    サーバーにログインできる方なら、Node.jsは node -v、.NETは dotnet --list-runtimes、Pythonの部品は pip show brotli で版がわかります。

  3. 表と比べて、修正版に更新する

    サーバーのOS(Linux)のパッケージも、あわせて更新します。テスト用の環境で、ふだんの業務が動くかを先に確かめると安心です。

  4. 再起動・作り直しまで行う

    更新しただけでは、動いているプログラムは古いままです。プログラムを再起動し、Dockerなどのコンテナや、ひとつにまとめて配布しているアプリは作り直して入れ替えます。

  5. ログに異常がないか確認する

    プログラムが急に止まったり、再起動をくり返したりしていないかを確認します。あやしい点があれば、専門の会社に調べてもらいましょう。

すぐに更新できないときの応急処置

入口のサーバー(リバースプロキシやロードバランサー)で、外から届く「br」で圧縮されたリクエストを受け付けないようにすると、受け取る側の危険は下げられます(Red Hatの案内)。ただし、ほかのサーバーからデータを取ってくる側の危険は残ります。あくまで更新までのつなぎです。

放っておくと? 対応すると?

そのままにした場合

  • すでに悪用されている弱いところが残ったまま
  • 細工したデータひとつで、サービスが止まるおそれ
  • 最悪の場合、サーバーを乗っ取られるおそれ

修正版に更新し、入れ替えまで行った場合

  • 今回の弱いところが直る
  • Node.jsや.NETの、ほかの修正もまとめて受け取れる
  • 取引先にも「対応済み」と説明できる

開発会社・保守会社に聞いておきたいこと

  • うちのシステムは、Node.js・.NET・Pythonのどれを、どの版で使っていますか?
  • CVE-2026-111497(Brotli)の修正版には、いつ更新できますか?
  • 外から届いた圧縮データを展開する機能や、外部からデータを取ってくる機能はありますか?
  • 更新したあと、プログラムの再起動やコンテナの作り直しまで行いますか?
  • Node.js 20以前や.NET 8・9など、サポートが終わる版を使っていませんか?

Node.js 20や.NET 8・9のように、サポートが終わった(終わる)版を使っている場合は「古いシステムの脆弱性対策」もご覧ください。

Digi Dinosにおまかせください

Digi Dinos(デジダイノス)は、ベトナムと日本に拠点をもつシステム開発会社です。創業から8年、150件以上のプロジェクトを手がけてきました。日本語ができるチームが対応します。

  • 古いシステムの保守を引き継ぎ:Node.js、.NET、Python、Java、PHP、Rubyなど、主な言語に対応します。
  • 新しい脆弱性への対応:今回のような更新が出たら、影響を調べて修正し、入れ替えまで行います。
  • まるごとバージョンアップ:言語、フレームワーク、サーバーやOSまで新しくします。
  • 資料がなくても大丈夫:作った会社がいない、仕様がだれにもわからないシステムでも、プログラムを読んで調べ、資料を作り直し、計画をまとめてご提案します。
  • 永久保証:私たちが手を入れた部分に不具合が見つかったら、責任をもって直します。保守契約を続けていただいている間は、期限を区切らずに保証します。

「うちのシステムにBrotliは入っている?」というご相談だけでも(相談無料)

使っている仕組みの確認から、修正版への更新、入れ替えまで、日本語でご案内します。資料がないシステムでもご相談ください。

よくある質問

Brotliを入れた覚えはありません。関係ありますか?

関係があるかもしれません。Brotliは、Node.js・.NET・Python・Linuxなどの中に部品として入っていることが多く、使っている側が気づかないのがふつうです。まずは、自社のシステムがどの仕組みで動いているかを確認しましょう。

WordPressなどのホームページだけでも影響はありますか?

ページを圧縮して送るだけなら、今回の弱いところは使われないとされています。ただし、サーバー会社が管理しているOSの部品が対象になることもあるので、サーバー会社の案内も確認してください。

パソコンのブラウザは大丈夫ですか?

Red HatはLinux向けのFirefoxやThunderbirdも対象として挙げています。ブラウザやメールソフトは、自動更新を有効にして、最新の版を使うようにしましょう。

費用はどれくらいかかりますか?

使っている仕組みの数や古さによって変わるため、まず現状を調べてからお見積もりします。調べた結果をもとに、全体の計画と費用をわかりやすくご説明します。

関連記事