October 29, 2026

Brotliの脆弱性はNode.jsだけの問題ではない――確認する場所と、悪用⁠の⁠現⁠状

圧縮ライブラリ「Brotli」の脆弱性(CVE-2026-111497)が、2026年10月27日に、米国のCISAの「悪用が確認された脆弱性(KEV)」のカタログに登録されました。期限は、米国の連邦機関に対して、11月10日です(CISAのKEVのデータを、私が直接確⁠認⁠)⁠。

この脆弱性は、10月21日にNode.jsが公表したため、「Node.jsの問題」として知られています。ただ、原因は、Node.jsが同梱しているBrotliというライブラリにあります。そのため、同じライブラリを使う別の製品にも、影響が広がってい⁠ま⁠す⁠。

この記事は、「自分のところは、どこを確認すればよいのか」を知りたい方向けに、一次情報を軸にして、確認できた事実と、確認できていない点を分けて整理したものです。情報は、2026年10月29日の時点のもの⁠で⁠す⁠。

日本語で出回っている情報には、原文と異なる訳や要約が、かなり見受けられます。この記事は、一次情報を私たちも原文で確認して書いていますが、読者の皆さんも、各社の原文でのご確認をお勧めします。出典は、各記述のそばに示してい⁠ま⁠す⁠。

要点

  • Brotliは、Webの通信で使われる、データの圧縮方式です。デコーダ(展開する側)に、範囲外書き込みの欠陥があり、細工されたデータを展開させられると、クラッシュ、メモリの漏えい、場合によっては、コードの実行につながるとされています(GitHubのアドバイザ⁠リ⁠)⁠。
  • 修正版は、Brotli 1.2.1、1.1.1、1.0.10です(Googl⁠e⁠)⁠。
  • 影響は、Node.jsにとどまりません。Node.js、Bun、Pythonのパッケージ、.NET、Palo AltoのPAN-OSなどで、修正が出てい⁠ま⁠す⁠。
  • 当たるかどうかは、「攻撃者が用意したBrotliのデータを、展開するかどうか」で決まります。ただし、展開するかどうかは、気づきにくい場所で決まっていることがあり⁠ま⁠す⁠。
  • 悪用は、ELLIOが、攻撃の通信を観測したと報告し、CISAがKEVに登録しました。一方で、確実にコードを実行できることが示されたのは、限られた環境だけ⁠で⁠す⁠。
  • やることは、使っているものの一覧を作って、更新して、再起動し、コンテナは作り直すこと⁠で⁠す⁠。

何が起⁠き⁠た⁠か

日付(2026年) 出来事 出典
2月27日 修正が、Brotliのソースに入る。このときは、リリースも告知もなかった Help Net Security
10月21日 Node.jsが、修正版を公開。Googleも、Brotli 1.2.1、1.1.1、1.0.10を公開 Node.js、Google
10月22日 CVEのレコードとアドバイザリが公開。最初の概念実証(PoC)が出る GitHubのアドバイザリ、Aikido
10月25日 Microsoftが、.NETの定例外の更新を公開 Microsoft .NET Blog
10月26日 Palo Altoが、PAN-OSが対象と公表。JPCERT/CCが、注意喚起を公開。ELLIOが、攻撃の通信を観測したと報告 Palo Alto、JPCERT/CC、Help Net Security
10月27日 CISAが、KEVに登録 CISAのKEVのデータ

見つけたのは、OpenAIのCodex Securityです(Khai Tran氏とSylvie Mayer氏。Node.j⁠s⁠)⁠。

修正は、2月にソースへ入っていたのに、リリースは10月でした。Help Net Securityは、その間の約8か月、修正が、公開のリポジトリで読める状態だったと指摘しています(Help Net Securit⁠y⁠)⁠。

どこが、影響を受け⁠る⁠の⁠か

Brotliは、別の製品の中に、同梱されています。製品ごとの状況は、次のとおり⁠で⁠す⁠。

製品 修正版 出典
Brotli(Cのライブラリ) 1.2.1、1.1.1、1.0.10 Google
Node.js 22.23.4、24.22.1、26.12.1 Node.js
Node.js 20、23、25 サポート終了のため、修正なし Aikido
Bun 1.4.4 Aikido
Python(Brotli、brotlicffi) 1.2.1、1.2.1.0 GitHubのアドバイザリ
.NET 8.0.33、9.0.22、10.0.14(.NET 11はRC3) Microsoft .NET Blog
Palo Alto PAN-OS 12.2.4-h1、12.1.4-h13、12.1.7-h11、12.1.10-h3、11.2系の各ホットフィックス Palo Alto

JPCERT/CCは、Node.js、Bun、PythonのBrotliパッケージを例として挙げ、Brotliは、多岐にわたる製品に組み込まれていると述べています。Google側には、緩和策がありません(JPCERT/C⁠C⁠)⁠。

このほか、Envoy、Istio、curl、FFmpeg、Apache Arrow、ClickHouse、Javaのbrotli4jなどが、影響の話に挙がっています(Help Net Security、Aikido)。これらは、報道や、セキュリティ会社のブログに基づく二次情報なので、各製品の公式の案内で、確認してくだ⁠さ⁠い⁠。

注意が要るのは、次の点⁠で⁠す⁠。

  • Node.jsは、自前のBrotliを同梱しています。OSのライブラリを更新しても、直りま⁠せ⁠ん⁠。
  • DebianのNode.jsは、OSのBrotliを使います。Node.jsの番号だけでは、修正済みかどうかが分かりません(Sysdi⁠g⁠)⁠。
  • コンテナのイメージは、作り直すまで、古いままです(Aikid⁠o⁠)⁠。
  • 自己完結型の.NETアプリは、ホストの更新では直りません。再ビルドして、公開し直す必要があります(Microsoft .NET Blo⁠g⁠)⁠。

当たるのは、どんな⁠と⁠き⁠か

「Brotliが入っている」だけでは、攻撃されません。攻撃者が用意したBrotliのデータを、展開したときに、問題になり⁠ま⁠す⁠。

場面 当たるか 出典
Node.jsで、node:zlibを使って、外から来たデータを展開している 当たる Node.js
Express 5(express.json())で、リクエストの本文を受けている 当たる(既定で、Brotliの本文を展開する) Sysdig
Express 4 body-parser経由では、当たらない(415を返す) Sysdig
サーバー側のfetch()で、利用者が指定したURLや、Webhookの宛先を呼んでいる 当たりうる(レスポンスのBrotliを自動で展開する) Aikido、Sysdig
.NETで、リクエストの展開や、HttpClientの自動展開を、有効にしている 当たる。既定では無効 Microsoft .NET Blog
PAN-OSで、TLS復号つきのBrotli検査を、有効にしている 当たる。管理画面やAPIは、対象外 Palo Alto

PAN-OSは、11.2.4以降で、Brotliの検査は、既定では無効です。確認は、CLIでshow system setting brotliを実行し、「Enabled: yes」と出れば、当たります(Palo Alt⁠o⁠)⁠。

悪用は、どこまで⁠確⁠か⁠か

項目 内容 確度
CISAのKEV登録 10月27日。要対処の期限は、11月10日。攻撃者や標的は、示されていない 一次(CISAのKEVのデータ)
攻撃の通信 ELLIOが、10月26日に、自社のセンサーで観測したと報告。公開のPoCを使ったもので、脆弱なビルドでシェルが取れることを、確認したとしている 報道(Help Net Security)。ELLIOの原文は、私は確認できていません
公開のPoC 10月22日。意図的に弱くしたビルドでだけ、コード実行に至ると報告されている。通常のビルドでは、クラッシュと、限られたメモリの読み出し 二次(Aikido)
通常の環境でのコード実行 Impervaが、公式のNode.js 24.22.0(Linux arm64)で、複数回の試行のあと、成功したとしている。エクスプロイトは、非公開 二次(Sysdig)
Palo Altoの見解 PAN-OSのこの件で、悪意のある悪用は把握していないとしている(10月29日更新時点) 一次(Palo Alto)
深刻度 GoogleのCVEレコードは、CVSS v4.0で9.2(Critical)。Node.jsは、High 一次(GitHubのアドバイザリ、Node.js)

まとめると、「攻撃の通信は観測され、CISAも悪用として登録したが、どの環境でも確実にコードを実行できる、という段階ではない」と言えます。クラッシュは、簡単に再現できるとされています(Sysdig)。サービスが落ちるだけでも、被害⁠で⁠す⁠。

いま、や⁠る⁠こ⁠と

1. 使っているものの一覧⁠を⁠作⁠る

次の順に、洗い出してくだ⁠さ⁠い⁠。

  1. 外のデータを受けて、展開しているサービス(Node.js、Python、.NET、Java⁠な⁠ど⁠)
  2. 利用者が指定したURLや、Webhookの宛先を、サーバー側から呼んでいるサ⁠ー⁠ビ⁠ス
  3. ファイアウォールや、ロードバランサーなどの機器(TLS復号と、Brotli検査を使っている⁠も⁠の⁠)
  4. コンテナのイメージ、CIの実行環境、サーバーレスの関数、ビルド用のサ⁠ー⁠バ⁠ー

2. 更⁠新⁠す⁠る

確認のコマンドは、次のとおり⁠で⁠す⁠。

# Node.js
node --version
node -p "process.versions.brotli"

# Python
pip show Brotli brotlicffi
pipdeptree -r -p Brotli

# .NET
dotnet --list-runtimes
  • Node.jsは、22.23.4、24.22.1、26.12.1以降にします。20、23、25は、修正がないため、22、24、26へ移り⁠ま⁠す⁠。
  • Pythonは、urllib3、requests、aiohttp、httpx、Scrapyなどを通じて、間接的に入っていることがあります。ロックファイルも、見てください(Aikid⁠o⁠)⁠。
  • .NETは、8.0.33、9.0.22、10.0.14以降にします。更新後は、アプリを再起動します(Microsoft .NET Blo⁠g⁠)⁠。
  • PAN-OSは、上の表の修正版にします。PHP2Shellの修正だけのホットフィックスでは、足りません。例えば、11.2.10-h16はPHPの修正だけで、11.2.10-h17が、PHPとBrotliの両方を直します(Palo Alto)。更新できないときは、Brotliのエンコーディングを無効にします(CLIではset system setting brotli-encoding disable。Palo Alt⁠o⁠)⁠。
  • 更新したら、プロセスを再起動し、コンテナは、作り直して、デプロイし直します。そうしないと、古いデコーダが動き続け⁠ま⁠す⁠。

3. 更新できないときの、つなぎ⁠の⁠対⁠処

次のどれも、安全にはなりません。時間稼ぎ⁠で⁠す⁠。

  • プロキシや、ロードバランサーで、Content-Encoding: brのリクエストを拒否する。ただし、サーバー側から取りに行くレスポンスには、効きません(Aiki⁠d⁠o⁠)
  • Express 5なら、express.json({ inflate: false })で、圧縮された本文を、拒否する。gzipも拒否されるため、先に、クライアントへの影響を確かめます(Sysd⁠i⁠g⁠)
  • Pythonで、使っていないなら、BrotliとBrotlicffiを、アンインストー⁠ル⁠す⁠る

Node.jsの公式は、回避策を示していません。Node.jsの取得するレスポンスまで防ぐには、更新しかありま⁠せ⁠ん⁠。

4. 侵害⁠の⁠確⁠認

悪用の通信は、観測されています。更新の前に、次の点を、確認してくだ⁠さ⁠い⁠。

  • Node.jsのプロセスが、クラッシュしたあとに、シェルや、別のプログラムを起動していないか(Sysdigは、「クラッシュのあとに、その場でプログラムが実行される」動きを、典型として挙げてい⁠ま⁠す⁠)
  • 外部への、見覚えのない通信が⁠な⁠い⁠か
  • クラウドの認証情報が、環境変数などに、置かれたままになってい⁠な⁠い⁠か

やってはいけな⁠い⁠こ⁠と

  • Node.jsだけを見て、終わりにしない。Python、.NET、機器にも、同じ部品が入って⁠い⁠ま⁠す
  • OSのライブラリを更新しただけで、安心しない。Node.jsは、自前のBrotliを同梱して⁠い⁠ま⁠す
  • 更新して、再起動せずに、済ま⁠せ⁠な⁠い
  • ネットで見つけたPoCを、本番で試⁠さ⁠な⁠い

未確⁠認⁠の⁠点

  • ELLIOの原文は、私は確認できていません。観測の詳しい内容(件数、標的、期間)は、分かり⁠ま⁠せ⁠ん
  • どこが、実際に被害を受けたかは、分かりません。CISAは、攻撃者も標的も、示してい⁠ま⁠せ⁠ん
  • Impervaのエクスプロイトは、非公開です。通常の環境でのコード実行が、どこまで再現するかは、分かり⁠ま⁠せ⁠ん
  • 一覧にない製品が、Brotliを組み込んでいるかは、各製品の公式の案内で、確認が要⁠り⁠ま⁠す
  • PHP2Shellの件で、同じPAN-OSの機器が侵害された、という報告があります。それは、別の脆弱性(PHP)の話です。経緯は、PHP2Shellのエンジニア向けまとめにあります。Node.jsの10件の修正の全体は、Node.jsのまとめにあ⁠り⁠ま⁠す

関⁠連⁠記⁠事

自社の環境で、Brotliを含む部品の洗い出しや、更新、侵害の確認でお困りの方は、下記よりお問い合わせくだ⁠さ⁠い⁠。

無料セキュリティ相談を⁠受⁠付⁠中

ただいま、セキュリティについての無料相談を受け付けています。「自社のサイトは大丈夫か」「何から確認すればよいか」など、お気軽にご相談ください。

Super Sonic DesignではWebサイトの制作やアプリのデザインなどのご相談を承っております。どうぞお気軽にお問い合わせください。
お問い合わせ
他の最新記事
カテゴリー