Broccoli2Shell(GitHub では Node2Shell):Brotliの脆弱性を、スタックごとに確認する
Broccoli2Shell は、Brotliデコーダーの境界外書き込みを指して広く使われている名前で、Node.js、Python のパッケージ、これを同梱する他のソフトウェアに及びます。GitHub のアドバイザリは同じ脆弱性を Node2Shell と題しています。以下の各記述は公式の出典にリンクしており、引用文もワンクリックで確認できます。コマンドは、お使いのマシン上でバージョンを表示するだけです。
保存済みの出典と照合した最終確認日:
何が起きたか
-
GitHub のアドバイザリ GHSA-9v8h-qqgm-4m35 は、このBrotliデコーダーの脆弱性に Node2Shell という名前を付け、PyPI の Brotli パッケージにも影響すると説明しています。広く使われている呼び名は Broccoli2Shell ですが、以下のベンダーのアドバイザリは名前ではなく、Brotliデコーダーの欠陥として説明しています。
引用文
Brotli: Out-of-bounds write in the Brotli decoder ("Node2Shell") also affects the PyPI Brotli package
GHSA ID GHSA-9v8h-qqgm-4m35
-
Google の CVE レコードは、Brotli デコーダーのバッファオーバーフローが、細工された Brotli 圧縮ストリームで到達できると説明しています。Google Brotli の 1.0.3 以上 1.0.10 未満、1.1.0 以上 1.1.1 未満、1.2.0 以上 1.2.1 未満を影響対象として挙げています。
出典: CVE Program (record by Google) · イベントページ: CVE-2026-111497 (英語ページ)
引用文
A buffer overflow vulnerability in the Brotli decoder (c/dec/decode.c) in Google Brotli versions 1.0.3 through 1.2.0 on all platforms allows a remote unauthenticated attacker to corrupt adjacent decoder state memory, disclose sensitive memory contents, cause a denial of service, or potentially execute arbitrary code using a crafted Brotli-compressed stream.
{ "status": "affected", "version": "1.0.3", "lessThan": "1.0.10", "versionType": "semver" }, { "status": "affected", "version": "1.1.0", "lessThan": "1.1.1", "versionType": "semver" }, { "status": "affected", "version": "1.2.0", "lessThan": "1.2.1", "versionType": "semver" }
Node.js
Node.js のアドバイザリは Node.js に同梱された Brotli デコーダーについてのものなので、確認するのはシステムのライブラリではなく Node.js のバージョンです。
-
Node.js は Brotli デコーダーの境界外書き込み(CVE-2026-111497)が 26.x、24.x、22.x の各リリースラインに影響するとしています。同じセキュリティリリースのページは、ダウンロードとリリース詳細の欄に v22.23.4、v24.22.1、v26.12.1 を挙げています。
出典: Node.js
引用文
Node.js Brotli decoder out-of-bounds write permits remote code execution (CVE-2026-111497) - (high) A flaw in the Brotli decoder bundled with Node.js allows malformed compressed input to write past the end of an internal decoder buffer. An invalid block switch was reported as a temporary need for more input instead of a permanent format error, so the streaming decoder kept appending input bytes to an eight-byte internal buffer. An attacker who can supply Brotli data that an application decompresses with node:zlib can corrupt process memory, which can lead to a crash, disclosure of process memory, or remote code execution. This vulnerability affects Node.js 26.x , 24.x , and 22.x .
Downloads and release details Node.js v22.23.4 Node.js v24.22.1 Node.js v26.12.1
これらのコマンドはお使いのマシン上で実行され、そこにインストールされているもの(バージョン、発行者、有効期間、信頼ストアのエントリ)を読むだけです。PatchBell があなたのシステムをスキャンすることはありません。
Node.js
このマシンの Node.js のバージョンを表示します。上に挙げたお使いのリリースラインの修正版と比べてください。
node -v ツールのドキュメント: Node.js documentation
引用文
-v , --version # Added in: v0.1.3 Print node's version. Python(brotli と brotlicffi)
GitHub のアドバイザリが挙げているのは下の2つの PyPI パッケージです。仮想環境やコンテナイメージも含め、環境ごとに確認してください。
-
GitHub のアドバイザリは、PyPI の brotli と brotlicffi が 1.0.3 以降で影響を受けるとし、1.2.1 と 1.2.1.0 で修正されたと示しています。
引用文
pip brotli ( pip ) Affected versions >= 1.0.3, < 1.2.1 Patched versions 1.2.1 pip brotlicffi ( pip ) >= 1.0.3, < 1.2.1.0 1.2.1.0
これらのコマンドはお使いのマシン上で実行され、そこにインストールされているもの(バージョン、発行者、有効期間、信頼ストアのエントリ)を読むだけです。PatchBell があなたのシステムをスキャンすることはありません。
Python(pip)
各パッケージのインストール済みバージョンを表示します(未インストールなら何も表示されません)。環境ごとに、その環境のインタープリターで実行してください。
pip show brotli brotlicffi ツールのドキュメント: pip documentation
引用文
Show information about one or more installed packages. Go
このページは Go の公式の出典を引用していません。下のコマンドは、ビルドリストに含まれる Brotli 関連モジュールとそのバージョンを表示します。C 版のライブラリをラップするプログラムやそのソースを同梱するプログラムでは、そのコピーのバージョンも確認してください。
これらのコマンドはお使いのマシン上で実行され、そこにインストールされているもの(バージョン、発行者、有効期間、信頼ストアのエントリ)を読むだけです。PatchBell があなたのシステムをスキャンすることはありません。
Go モジュール
go コマンドに go.mod を変更させずに、現在のモジュールのビルドリストにあるモジュールのうち、Brotli を含む行だけを表示します。
go list -mod=readonly -m all | grep -i brotli ツールのドキュメント: Go modules reference
引用文
The build list may be inspected with the command go list -m all .-mod=readonly tells the go command to ignore the vendor directory and to report an error if go.mod needs to be updated. libbrotli と brotli コマンド
システムの Brotli ライブラリをリンクしているプログラムは、ディストリビューションがインストールしたバージョンを使います。他のプログラムに同梱または静的リンクされたコピーも確認してください。ディストリビューション別の一覧はイベントページにあります。
-
Google のリリース v1.2.1 に、CVE-2026-111497 のセキュリティ注記が付いています。
引用文
CVE-2026-111497 : out-of-bounds write permits remote code execution
v1.2.1
-
Google のリリース v1.1.1 に、CVE-2026-111497 のセキュリティ注記が付いています。
引用文
CVE-2026-111497 : out-of-bounds write permits remote code execution
v1.1.1
-
Google のリリース v1.0.10 に、CVE-2026-111497 のセキュリティ注記が付いています。
引用文
CVE-2026-111497 : out-of-bounds write permits remote code execution
v1.0.10
これらのコマンドはお使いのマシン上で実行され、そこにインストールされているもの(バージョン、発行者、有効期間、信頼ストアのエントリ)を読むだけです。PatchBell があなたのシステムをスキャンすることはありません。
brotli コマンドラインツール
このマシンにインストールされた brotli ツールのバージョンを表示します。他のプログラムに同梱されたコピーは、この方法では見えません。
brotli --version ツールのドキュメント: Debian manual pages
引用文
-V , --version : display version and exit Bun
-
Bun のアドバイザリは、Bun が 1.0.21 以降で影響を受け、1.4.4 で修正されたと示しています。この版で同梱の Brotli が 1.2.1 に更新されています。
引用文
Affected versions >= 1.0.21, < 1.4.4 Patched versions 1.4.4
Bun 1.4.4 updates brotli to 1.2.1, which contains the fix.
これらのコマンドはお使いのマシン上で実行され、そこにインストールされているもの(バージョン、発行者、有効期間、信頼ストアのエントリ)を読むだけです。PatchBell があなたのシステムをスキャンすることはありません。
Bun
このマシンの Bun のバージョンを表示します。Bun でビルドした実行ファイルを配布している場合は、どのバージョンの Bun でビルドしたかも確認してください。
bun --version ツールのドキュメント: Bun documentation
引用文
After installation, verify with bun --version and bun --revision . Envoy
-
Envoy のアドバイザリは、脆弱なリリースとして v1.39.2、v1.38.5、v1.37.7、v1.36.11 を名指しし、パッチ済みのリリースとして v1.40.0、v1.39.3、v1.38.6、v1.37.8、v1.36.12 を挙げています。
引用文
Affected versions v1.39.2, v1.38.5, v1.37.7, v1.36.11 Patched versions v1.40.0, v1.39.3, v1.38.6, v1.37.8, v1.36.12
Envoy versions v1.39.2, v1.38.5, v1.37.7 and v1.36.11 are vulnerable to a buffer overflow vulnerability in the Brotli decoder.
これらのコマンドはお使いのマシン上で実行され、そこにインストールされているもの(バージョン、発行者、有効期間、信頼ストアのエントリ)を読むだけです。PatchBell があなたのシステムをスキャンすることはありません。
Envoy
お使いの Envoy バイナリのバージョンとビルド情報を表示します。
envoy --version ツールのドキュメント: Envoy documentation
引用文
--version (optional) This flag is used to display Envoy version and build information Istio
-
Istio のセキュリティ情報は、影響を受けるリリースとして 1.31.0 to 1.31.1、1.30.0 to 1.30.5、1.29.0 to 1.29.8 を挙げ、問題は Envoy が使う Brotli ライブラリにあると記しています。Brotli 解凍を有効にしているユーザー(例:EnvoyFilter を使う場合)にアップグレードを求めています。
出典: Istio
引用文
Affected Releases 1.31.0 to 1.31.1 1.30.0 to 1.30.5 1.29.0 to 1.29.8
CVE-2026-111497 : Fixed a vulnerability in the Brotli compression library used by Envoy. Users who enable Brotli decompression, for example with an EnvoyFilter , should upgrade.
-
Istio の 1.31.2 のリリースノートに、Envoy が使う Brotli ライブラリの CVE-2026-111497 の修正が載っています。
引用文
Announcing Istio 1.31.2 Istio 1.31.2 patch release.
CVE-2026-111497 : Fixed a vulnerability in the Brotli compression library used by Envoy.
-
Istio の 1.30.6 のリリースノートに、Envoy が使う Brotli ライブラリの CVE-2026-111497 の修正が載っています。
引用文
Announcing Istio 1.30.6 Istio 1.30.6 patch release.
CVE-2026-111497 : Fixed a vulnerability in the Brotli compression library used by Envoy.
-
Istio の 1.29.9 のリリースノートに、Envoy が使う Brotli ライブラリの CVE-2026-111497 の修正が載っています。
引用文
Announcing Istio 1.29.9 Istio 1.29.9 patch release.
CVE-2026-111497 : Fixed a vulnerability in the Brotli compression library used by Envoy.
これらのコマンドはお使いのマシン上で実行され、そこにインストールされているもの(バージョン、発行者、有効期間、信頼ストアのエントリ)を読むだけです。PatchBell があなたのシステムをスキャンすることはありません。
Istio
istioctl クライアントのビルドバージョンを表示し、クラスターに接続できる場合はコントロールプレーンのバージョンも表示します。
istioctl version ツールのドキュメント: Istio documentation
引用文
istioctl version Prints out build version information