Data checked 8 open events tracked Official sources only

Broccoli2Shell, titled Node2Shell by GitHub: one Brotli flaw, checked per stack

Broccoli2Shell is the name in common use for an out-of-bounds write in the Brotli decoder that reaches Node.js, Python packages and other software that bundles it. GitHub's advisory titles the same flaw Node2Shell. Each statement below links to its official source, with the quoted text one click away. The commands only print versions on your own machine.

Facts last checked against the stored sources on

What happened

  • GitHub's advisory GHSA-9v8h-qqgm-4m35 titles the Brotli decoder flaw with the name Node2Shell and says it also affects the PyPI Brotli package. Broccoli2Shell is the name in common use for it; the vendor advisories below describe it as a flaw in the Brotli decoder rather than by name.

    Source: GitHub Advisory Database

    Quoted text
    Brotli: Out-of-bounds write in the Brotli decoder ("Node2Shell") also affects the PyPI Brotli package
    GHSA ID GHSA-9v8h-qqgm-4m35
  • The CVE record by Google describes a buffer overflow in the Brotli decoder, reachable with a crafted Brotli-compressed stream. It lists Google Brotli as affected from 1.0.3 up to but not including 1.0.10, from 1.1.0 up to but not including 1.1.1, and from 1.2.0 up to but not including 1.2.1.

    Source: CVE Program (record by Google) · Event page: CVE-2026-111497

    Quoted text
    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

The Node.js advisory concerns the Brotli decoder bundled with Node.js, so the Node.js version is the one to check, not a system library.

  • Node.js lists the Brotli decoder out-of-bounds write (CVE-2026-111497) as affecting the 26.x, 24.x and 22.x release lines. The same security release page lists the versions v22.23.4, v24.22.1 and v26.12.1 under its downloads and release details.

    Source: Node.js

    Quoted text
    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

These commands run on your own machine and only read what is installed there: versions, issuers, validity dates and trust-store entries. PatchBell does not scan your systems.

Node.js

Prints the version of the Node.js binary on this machine. Compare it with the fixed release of your release line above.

node -v

Tool documentation: Node.js documentation

Quoted text
-v , --version # Added in: v0.1.3 Print node's version.

Python (brotli and brotlicffi)

The GitHub advisory lists the two PyPI packages below. Check them in each environment, including virtual environments and container images.

  • GitHub's advisory lists the PyPI packages brotli and brotlicffi as affected from 1.0.3, and as fixed in 1.2.1 and 1.2.1.0.

    Source: GitHub Advisory Database

    Quoted text
    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

These commands run on your own machine and only read what is installed there: versions, issuers, validity dates and trust-store entries. PatchBell does not scan your systems.

Python (pip)

Prints the installed version of each package, or nothing for a package that is not installed. Run it with the interpreter of each environment.

pip show brotli brotlicffi

Tool documentation: pip documentation

Quoted text
Show information about one or more installed packages.

Go

This page cites no official Go source. The command lists the Brotli modules in your build list so you can read their versions; programs that wrap the C library or vendor its source need the version of that copy checked as well.

These commands run on your own machine and only read what is installed there: versions, issuers, validity dates and trust-store entries. PatchBell does not scan your systems.

Go modules

Lists the modules in the build list of the current module without letting the go command change go.mod, and keeps the lines that mention Brotli.

go list -mod=readonly -m all | grep -i brotli

Tool documentation: Go modules reference

Quoted text
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 and the brotli tool

Programs that link a system Brotli library use the version your distribution installs. Also check any copy bundled or statically linked into other programs; the event page lists the distribution tables.

  • Google's release v1.2.1 carries the security note for CVE-2026-111497.

    Source: Google Brotli releases

    Quoted text
    CVE-2026-111497 : out-of-bounds write permits remote code execution
    v1.2.1
  • Google's release v1.1.1 carries the security note for CVE-2026-111497.

    Source: Google Brotli releases

    Quoted text
    CVE-2026-111497 : out-of-bounds write permits remote code execution
    v1.1.1
  • Google's release v1.0.10 carries the security note for CVE-2026-111497.

    Source: Google Brotli releases

    Quoted text
    CVE-2026-111497 : out-of-bounds write permits remote code execution
    v1.0.10

These commands run on your own machine and only read what is installed there: versions, issuers, validity dates and trust-store entries. PatchBell does not scan your systems.

brotli command line tool

Prints the version of the brotli tool installed on this machine. A bundled copy inside another program is not visible this way.

brotli --version

Tool documentation: Debian manual pages

Quoted text
-V , --version : display version and exit

Bun

  • Bun's advisory lists Bun as affected from 1.0.21 and fixed in 1.4.4, which updates the bundled Brotli to 1.2.1.

    Source: Bun (GitHub advisory)

    Quoted text
    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.

These commands run on your own machine and only read what is installed there: versions, issuers, validity dates and trust-store entries. PatchBell does not scan your systems.

Bun

Prints the version of the Bun binary on this machine. If you ship executables built with Bun, check which Bun version built them.

bun --version

Tool documentation: Bun documentation

Quoted text
After installation, verify with bun --version and bun --revision .

Envoy

  • Envoy's advisory names v1.39.2, v1.38.5, v1.37.7 and v1.36.11 as the vulnerable releases, and lists v1.40.0, v1.39.3, v1.38.6, v1.37.8 and v1.36.12 as the patched releases.

    Source: Envoy (GitHub advisory)

    Quoted text
    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.

These commands run on your own machine and only read what is installed there: versions, issuers, validity dates and trust-store entries. PatchBell does not scan your systems.

Envoy

Prints the Envoy version and build information of the binary you run.

envoy --version

Tool documentation: Envoy documentation

Quoted text
--version (optional) This flag is used to display Envoy version and build information

Istio

  • Istio's security bulletin lists the affected releases 1.31.0 to 1.31.1, 1.30.0 to 1.30.5 and 1.29.0 to 1.29.8, and notes that the flaw sits in the Brotli library used by Envoy. It tells users who enable Brotli decompression, for example with an EnvoyFilter, to upgrade.

    Source: Istio

    Quoted text
    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's release notes for 1.31.2 list the fix for CVE-2026-111497 in the Brotli library used by Envoy.

    Source: Istio release notes

    Quoted text
    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's release notes for 1.30.6 list the fix for CVE-2026-111497 in the Brotli library used by Envoy.

    Source: Istio release notes

    Quoted text
    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's release notes for 1.29.9 list the fix for CVE-2026-111497 in the Brotli library used by Envoy.

    Source: Istio release notes

    Quoted text
    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.

These commands run on your own machine and only read what is installed there: versions, issuers, validity dates and trust-store entries. PatchBell does not scan your systems.

Istio

Prints build version information for the istioctl client and, when it can reach the cluster, the control plane.

istioctl version

Tool documentation: Istio documentation

Quoted text
istioctl version Prints out build version information