ITニュース・速報
PR

Brotli脆弱性HTTP2Shell、米CISAが悪用確認【2026年10月】

Brotli脆弱性HTTP2Shell、米CISAが悪用確認【2026年10月】
IT Picks編集部

2026年10月26日、JPCERT/CC は、データ圧縮ライブラリ「Brotli(ブロトリ)」の脆弱性(CVE-2026-111497)について注意喚起を出しました。翌27日(米国時間)には、米国の CISA(サイバーセキュリティ・社会基盤安全保障庁)が、この脆弱性を「実際に悪用が確認された脆弱性」のカタログ(KEV)に追加しています。

BrotliのC言語実装における境界外書き込みの脆弱性(CVE-2026-111497)に関する注意喚起
BrotliのC言語実装における境界外書き込みの脆弱性(CVE-2026-111497)に関する注意喚起

最初は Node.js の脆弱性「Node2Shell」として知られましたが、原因は Brotli 本体にあり、Python や Bun、プロキシの Envoy なども対象です。Node.js を更新しただけでは終わらない——サーバー全体で Brotli の入った部品を探して更新する段階に入った、という位置づけです。

この記事はこんな人向けです

  • VPS や自前のサーバーで Node.js・Python・プロキシなどを動かしている
  • 「Node2Shell」「HTTP2Shell」と呼ばれる脆弱性が自分の環境に関係あるか知りたい
  • Node.js は更新したが、ほかに何を確認すればよいか分からない

HTTP2Shell(CVE-2026-111497)とは?一言でまとめると

一言でいうと、Brotli で圧縮されたデータを展開するときに、細工されたデータでメモリを壊される脆弱性です。

項目 内容(2026年10月28日時点)
識別番号 CVE-2026-111497
呼び名 Node2Shell、HTTP2Shell
原因 Google の Brotli(C 言語実装)の展開処理
対象の Brotli 1.0.3〜1.2.0(1.0.10・1.1.1・1.2.1 より前)
修正版 1.2.1・1.1.1・1.0.10(2026年10月21日公開)
深刻度 CVSS v4 で 9.2(Critical)(GitHub Advisory)
悪用 CISA が10月27日に KEV へ追加
日本の注意喚起 JPCERT/CC(JPCERT-AT-2026-0034、10月26日)

JPCERT/CC によると、「Node2Shell」は Node.js が10月21日に公表した件に由来する呼び名です。原因が Brotli にあり、HTTP 通信で使われるため複数の製品が影響を受けることから、「HTTP2Shell」とも呼ばれています。

JPCERT/CCのBrotliの脆弱性に関する注意喚起
出典: JPCERT/CC「BrotliのC言語実装における境界外書き込みの脆弱性(CVE-2026-111497)に関する注意喚起」

Brotliとは?なぜ影響が広いのか

Brotli は、Google が開発したデータ圧縮の形式・ライブラリです。Web では、サーバーとブラウザの間でデータを小さくして送るために使われ、HTTP の Content-Encoding: br がこれにあたります。

影響が広い理由は、Brotli がいろいろなソフトに部品として組み込まれているからです。JPCERT/CC も、Brotli を組み込んだ製品とバージョンは「多岐にわたる」としています。

  • ランタイム:Node.js(Brotli を同梱)や Bun
  • ライブラリ:Python 向けの Brotli / brotlicffi パッケージ
  • OS:Ubuntu・Debian の libbrotli などのパッケージ
  • そのほか:プロキシの Envoy、Git for Windows など

同じ脆弱性でも、部品ごとに別々に更新が必要になる点が、今回の厄介なところです。

何が起きる?脆弱性の中身

問題があるのは、圧縮データを展開する側(デコーダー)です。

Node.js の説明によると、不正な形式の圧縮データを受け取ったとき、本来は「データが壊れている」と判断すべきところを「入力がまだ足りない」と扱ってしまい、内部の小さなバッファ(8バイト)の外側にデータを書き込み続けてしまいます。

その結果として、JPCERT/CC は次のような影響の可能性を挙げています。

  • アプリケーションの異常終了
  • メモリ上の情報の漏えい
  • 任意のコードの実行

GitHub Advisory では、認証のないリモートの攻撃者が細工した Brotli のデータを送ることで悪用できるとされ、CVSS v4 のスコアは 9.2(Critical)です。

ポイントは、外部から受け取った Brotli データを展開する処理があるかどうかです。Node.js の場合は、アプリが node:zlib で攻撃者の用意した Brotli データを展開すると影響を受ける、と説明されています。

CISAが「悪用を確認した脆弱性」に追加

米国の CISA は10月27日、CVE-2026-111497 を KEV(Known Exploited Vulnerabilities)カタログに追加しました。

KEV は、CISA が「実際に悪用された脆弱性」をまとめた一覧です。追加の条件は次の3つとされています。

  • CVE の番号があること
  • 実際に悪用された信頼できる証拠があること
  • ベンダーの更新など、明確な対処法があること

研究目的のスキャンや実証コード(PoC)の公開だけでは、追加の条件を満たしません。つまり CISA は、どこかで実際の攻撃に使われたと判断したことになります。どの製品・どの環境で悪用されたかは、カタログには書かれていません。

項目 KEV の内容
追加日 2026年10月27日
名称 Google Brotli Unchecked Return Value Vulnerability
対応期限 2026年11月10日(米国の連邦政府機関向け)
ランサムウェアでの利用 不明(Unknown)

対応期限が義務になるのは米国の連邦政府の行政機関だけですが、CISA はそれ以外の組織にも KEV の脆弱性を最優先で直すよう強く推奨しています。

影響を受ける製品と修正版

2026年10月28日時点で、公式に修正版や状況が出ている主なものは次のとおりです。

Brotliの脆弱性(CVE-2026-111497)の主な対象と修正版
JPCERT/CC、Node.js、GitHub Advisory、Ubuntu、Debian、Envoy、Git for Windowsの公式情報(出典)をもとに IT Picks 編集部が作成
製品 修正版・状況
Brotli 本体 1.2.1・1.1.1・1.0.10
Node.js 26.12.1・24.22.1・22.23.4(10月21日)
Python(PyPI) Brotli 1.2.1、brotlicffi 1.2.1.0
Ubuntu USN-8956-1(10月26日)で 22.04 / 24.04 / 26.04 / 26.10 の brotli を更新
Debian bookworm は 1.0.9-2+deb12u1、trixie は 1.1.0-2+deb13u1
Envoy 1.36.12・1.37.8・1.38.6・1.39.3・1.40.0(Brotli 解凍を設定している場合)
Git for Windows 2.56.0.windows.4(10月26日、同梱の Brotli を 1.2.1 に)

JPCERT/CC は Bun も対象に挙げています。Bun を使っている場合は、Bun の開発元が出している最新の情報を確認してください。

注意したいのは、OS のパッケージはバージョン番号が「1.2.1」にならないことです。たとえば Ubuntu 22.04 の修正版は 1.0.9-2ubuntu0.1 で、修正だけを取り込んだ形(バックポート)になっています。番号だけで判断せず、各ディストリビューションのお知らせで確認するのが確実です。

VPS・自前サーバーで確認すること

VPS などで自分でサーバーを運用している場合は、次の順で確認するとよいでしょう。

① OS の Brotli パッケージを更新する

Ubuntu・Debian では、通常のシステム更新(sudo apt update && sudo apt upgrade)で修正版の libbrotli が入ります。Ubuntu のお知らせも「通常のシステム更新で必要な変更が行われる」としています。

Ubuntu のページによると、Ubuntu 22.04 以降の nodejs パッケージはシステムの Brotli を使うため、nodejs パッケージ自体は対象外とされています。一方、Ubuntu 20.04 の nodejs は同梱の Brotli を使うため「Vulnerable」、20.04 の brotli は「Needs evaluation(評価中)」です。

Debian のセキュリティトラッカーでは、10月28日時点で bookworm・trixie の nodejs パッケージは「Vulnerable」の表示のままです。

更新したライブラリは、動いているプロセスを再起動するまで読み込まれないので、更新後はアプリやサービスを再起動しておきましょう。

② Node.js を修正版にする

公式サイトや nvm などで入れた Node.js は、Node.js 自身が同梱している Brotliを使います。node -v で、26.12.1・24.22.1・22.23.4 以降になっているか確認します。

Node.js のバージョンごとのサポート期限や、更新の手順はこちらの記事で解説しています。

あわせて読みたい
Node.js 26のLTS入りはいつ?選び方と更新手順【2026年版】
Node.js 26のLTS入りはいつ?選び方と更新手順【2026年版】

③ Python の Brotli パッケージを確認する

Python では、python -m pip show brotli brotlicffi で入っているバージョンを確認できます。Brotli は 1.2.1 以上、brotlicffi は 1.2.1.0 以上が修正版です。

自分で import していなくても、別のライブラリの依存として入っていることがあります。urllib3 の公式ドキュメントでは、brotli か brotlicffi が入っていると、受け取れる圧縮形式(Accept-Encoding)に br を含めると説明されています。仮想環境や Docker イメージごとに確認し、ロックファイルを更新して作り直すのが確実です。

④ プロキシやほかのツールを確認する

Envoy で Brotli の解凍を設定している場合は、上の表の修正版に上げます。Windows で Git for Windows を使っている場合は、2.56.0.windows.4 以降に更新しておきましょう。

ほかにも Brotli を組み込んだ製品はあり得ます。JPCERT/CC は、Brotli 形式のデータを展開する処理を使っている場合は、各開発元の最新情報で影響と対応状況を確認するよう求めています。あわせて、侵害の有無の調査も呼びかけています。

10月には PHP にも深刻な脆弱性が見つかり、修正版が出ています。PHP を自分で更新する環境なら、あわせて確認しておきたいところです。

あわせて読みたい
PHPに深刻な脆弱性2件、修正版8.5.12などを公開【2026年10月】
PHPに深刻な脆弱性2件、修正版8.5.12などを公開【2026年10月】

開発者・セキュリティ企業の反応

JPCERT/CC が参考情報に挙げているセキュリティ企業 Aikido Security は、Python では urllib3(requests)・httpx・aiohttp などが Brotli の応答を自動で展開するため、直接使っていなくても依存関係で影響を受けうると指摘しています。すぐに更新できない場合は brotli / brotlicffi のアンインストールで回避できる一方、入口で Brotli の要求を拒否しても、アプリが外部から取得する応答は守れないとも述べています(出典)。

技術ブログ「lilting channel」の Ikesan 氏は、Windows 11 のローカル環境で動作を確かめた結果、brotli 1.2.0 が入った Python(urllib3)や Git for Windows 同梱の curl が、圧縮なし(identity)を指定しても Brotli の応答を展開したと報告しています。Windows 標準の curl は Brotli に対応しておらず、展開しなかったとのことです(出典)。

一方で、研究者の Qi Deng 氏は GitHub で公開した分析で、バグ自体は実在するものの、Brotli の仕様上の上限からリモートでのコード実行には構造的に到達できないとの見方を示しています(出典)。コード実行の可否については見方が分かれていますが、CISA は悪用の証拠があるとして KEV に追加しています。

IT Picks的な所感

今回の件で重いのは、「Node.js の脆弱性」として出た話が、実はあちこちに組み込まれた部品の問題だったという点だと思います。Node.js を更新して安心していた人も、OS のライブラリや Python の仮想環境、Docker イメージは別に確認が必要です。

コード実行まで本当に到達できるかには異論もあります。ただ、CISA が KEV に入れた以上、「理論上の話」として後回しにするのは避けたいところです。修正版はすでに出そろってきているので、apt upgrade と再起動、Node.js と Python パッケージの更新という基本の作業で多くは片づきます。

10月は PHP の深刻な脆弱性や、国内で相次ぐ不正アクセスの注意喚起も続いています。サーバーをまとめて点検するよい機会と考えて、あわせて見直しておくのがよさそうです。

あわせて読みたい
相次ぐ不正アクセス、JPCERTがAI悪用の手口を追記【2026年10月】
相次ぐ不正アクセス、JPCERTがAI悪用の手口を追記【2026年10月】

まとめ

Brotli の脆弱性(HTTP2Shell)のポイントをまとめます。

  • 識別番号:CVE-2026-111497(Node2Shell / HTTP2Shell)
  • 原因:Google の Brotli(C 言語実装)1.0.3〜1.2.0 の展開処理
  • 影響:細工した圧縮データで異常終了・メモリの漏えい・コード実行の恐れ
  • 修正版:Brotli 1.2.1・1.1.1・1.0.10(10月21日)
  • 悪用:CISA が10月27日に KEV に追加(米連邦機関の対応期限は11月10日)
  • 日本の注意喚起:JPCERT/CC が10月26日に公開
  • やること:OS の更新と再起動、Node.js(26.12.1・24.22.1・22.23.4 以降)、Python の Brotli 1.2.1 / brotlicffi 1.2.1.0 以降

VPS を運用している人は、まずapt upgrade で OS の Brotli を更新し、サービスを再起動するところから始めるのがおすすめです。

ABOUT ME
IT Picks 編集部
IT Picks 編集部
ITツール・Webサービス紹介メディア
IT Picks 編集部。VPS・クラウド・AIツール・SaaSを中心に、実際に検証した情報を届けるITメディアです。「本当に使えるか」を基準に、初心者からエンジニアまで役立つ記事を制作しています。
記事URLをコピーしました