Node2Shell: Brotli Flaw Triggers Patching Across Microsoft, Node.js, Python Packages
2026/10/26 SecurityWeek — Google のデータ圧縮ライブラリ Brotli に、脆弱性 CVE-2026-111497 が発見された。この Node2Shell と呼ばれる脆弱性を受け、Microsoft/Node.js プロジェクト/2つの Python パッケージのメンテナーが、セキュリティ・アップデートを公開した。Node.js と Python パッケージには前週に修正が適用され、続いて Microsoft が10月25日に .NET/Visual Studio/PowerShell 向けの修正プログラムを公開した。さらに、Bun/Envoy/Istio についてもアップデートが実施されている。

Brotli は、Web 上で送受信されるデータ圧縮に広く利用されており、そのデコーダーは数多くのアプリケーションやライブラリに組み込まれている。
今回の脆弱性は、境界外書き込み (Out-of-Bounds Write) に分類され、Brotli のバージョン 1.0.3〜1.2.0 に影響を及ぼす。Google は、この脆弱性の CVSS v4.0 値を 9.2 (Critical) と評価し、Brotli 1.0.10/1.1.1/1.2.1 で修正を実施している。
Node.js プロジェクトによると、特別に細工された入力データにより、デコーダーが使用するバッファの境界を超えてデータが書き込まれる可能性がある。その結果、メモリ破損が発生し、プロセスのクラッシュやメモリ内容の漏えいを引き起こすほか、未認証の攻撃者による任意のコード実行が引き起こされる可能性がある。
Node.js プロジェクトは、この脆弱性を発見したのは OpenAI Codex Security のメンバーであると発表した。
OpenAI によると、この問題はレッドチーミング (攻撃者の視点から行うセキュリティ検証) の過程で発見された。その後に OpenAI は、Brotli の開発者と同ライブラリに依存する各プロジェクトに対して問題を報告した。
なお、OpenAI は、根本原因に対する修正自体は、今回の脆弱性の公開より前に行われていたと説明している。同社によると、根本的な問題は 2026年2月の時点で Brotli のソースコード上で修正されていた。しかし、その時には、この問題がセキュリティ上の脆弱性につながるとは認識されておらず、それ以降において新しい Brotli リリースも公開されていなかった。
公式 Node.js イメージでコード実行を実証
セキュリティ企業 Imperva は、Linux arm64 向けの公式 Node.js 24.22.0 イメージにおいて、この脆弱性を悪用するコード実行が可能であることを実証した。同社の研究者たちは、次の2つの経路で悪意のデータを送信した。
- 標的アプリケーションが外部サーバから取得するレスポンス。
- Express 5 または body-parser 2 により処理される HTTP リクエストボディ。
Imperva によると、すべての試行で攻撃が成功したわけではない。しかし、テスト対象の Linux arm64 ビルドとアプリケーション構成では、コード実行が可能であることが確認されている。また、修正済みビルドが同じ入力データを処理する方法も検証された。なお、Imperva は実証に使用したエクスプロイト・コードを公開していない。
この攻撃が成立するのは、悪意の Brotli データが、影響を受けるデコーダーに渡される場合に限られる。たとえば、アプリケーションに代わって、このライブラリを経由して、圧縮コンテンツが展開される場合などが該当する。
OpenAI の Patch the Planet イニシアチブのセキュリティ・アドバイザリは、攻撃者が制御できるデータを脆弱な Google Brotli デコーダーに渡すアプリケーションは、影響を受ける可能性があると指摘している。具体的には、以下のようなデータが攻撃経路となり得る。
- Brotli で圧縮された HTTP リクエストボディ
- 信頼できないサーバーから取得したレスポンス
- Brotli で圧縮されたファイル
実際の悪用状況
現時点では、この脆弱性が実際の攻撃で悪用されたという報告はない。
GitHub で公開された概念実証 (PoC) エクスプロイトにおいては、意図的にセキュリティを弱めたビルドに対してのみ、コード実行が成功したと報告されている。また、一部の研究者は、この脆弱性はサービス拒否 (DoS) 攻撃にだけ悪用できると主張している。
その一方で、Imperva は特定の Linux arm64 環境においてコード実行を実証している。したがって、PoC によるコード実行の実証と、実際の攻撃環境での悪用確認は区別する必要がある。
Microsoft 製品および Python パッケージへの影響
Microsoft が10月25日に公開したアップデートには、以下の .NET ランタイムが含まれる。
- .NET 8.0.33
- .NET 9.0.22
- .NET 10.0.14
- .NET 11 Release Candidate 3(RC3)
また、Visual Studio 2019/2022/2026 および、PowerShell 7.4/7.5/7.6 に対してもセキュリティ・アップデートが公開された。
Microsoft は、CVE-2026-111497 を特権昇格 (Elevation of Privilege) の脆弱性として分類し、CVSS v3.1 の基本スコアを 8.1 と評価している。同社の製品別の深刻度評価は、次のとおりである。
| 製品 | Microsoft の深刻度評価 |
|---|---|
| .NET | Critical(緊急) |
| Visual Studio | Critical(緊急) |
| PowerShell | Important(重要) |
Microsoft は、悪用可能性について Exploitation More Likely (悪用される可能性が高い) と評価している。ただし、実際の悪用が確認されたことを意味するものではない。
Python パッケージの修正状況
Python では、脆弱な Brotli デコーダーが、PyPI で公開されている2つのパッケージに組み込まれている。
| パッケージ | 修正済みバージョン |
|---|---|
| Brotli | 1.2.1 |
| brotlicffi | 1.2.1.0 |
これらのパッケージは、上記バージョンの公開により修正されている。
影響を受けるソフトウェアが次々と明らかになるにつれて、この脆弱性は「HTTP2Shell」や「Broccoli2Shell」と呼ばれるようになった。
その他の影響を受ける可能性があるソフトウェア
Brotli デコーダーの独自コピーを同梱している、ソフトウェアを追跡するための公開トラッカーでは、いまも修正されていないプロジェクトとして、次の製品などが挙げられている。
- DuckDB
- Apache Arrow
- 7-Zip-zstd
- p7zip
- EDK II
ただし、このトラッカーの管理者は、網羅的なものではないことを明示している。また、掲載されているプロジェクトについても、すべての構成で脆弱なコードが攻撃可能な状態にあるとは限らない。
アップデート時の注意点
セキュリティ・アップデートを適用する際は、パッケージやライブラリの更新だけではなく、影響を受けるサービスの再起動も必要となる。
コンテナ環境では、修正済みのベースイメージを使用してコンテナ・イメージを再構築する必要がある。つまり、すでに稼働しているプロセスの場合は、ディスク上のライブラリを更新しただけでは、脆弱なコードを引き続き使用する可能性がある。
今回の脆弱性は、Brotli を直接使用しているアプリケーションだけではなく、Brotli デコーダーを内部に組み込んでいるライブラリやフレームワークにも影響が及ぶ可能性がある。
そのため、管理者は直接依存するパッケージだけでなく、間接的な依存関係やコンテナイメージに含まれる Brotli の実装についても確認し、修正済みバージョンへの更新と稼働プロセスへの反映を徹底する必要がある。
この記事は、データ圧縮ライブラリである Google Brotli における境界外書き込みの脆弱性について解説するものです。データ展開処理時の境界チェック不足や入力値検証の不備が背景に存在します。影響として、メモリ領域の破損/プログラムの強制終了/不正な遠隔命令の実行が生じる恐れがあります。対応策として、組み込み先環境の更新プログラム適用/基盤ライブラリの入れ替え/コンテナイメージの再構築が求められます。
You must be logged in to post a comment.