Broccoli2Shell Explained: A Compression Bug Across Multiple Ecosystems
AIThis post was created with the assistance of artificial intelligence (AI).

🔍 Read the full analysis: Broccoli2Shell Explained: A Compression Bug Across Multiple Ecosystems on ThorstenMeyerAI.com

Age 18–24?Offer from Amazon

Prime made for students and young adults

  • Fast, free delivery for dorm and study essentials
  • Prime Video and Amazon Music included
  • Member-only deals
Try Prime for Young Adults Free trial for eligible 18–24 year olds
As an affiliate, we earn on qualifying purchases.

TL;DR

Broccoli2Shell is a memory-corruption flaw in Google’s Brotli C decoder that has spread through runtimes, packages and other software using bundled copies. Fixes are available for many widely used components, but a tracker cited in the source lists seven bundled copies that were still unfixed as of October 26, 2026. No exploitation in the wild was reported in the cited data.

Security fixes are spreading across Node.js, Python, Bun, Envoy, Istio and .NET for Broccoli2Shell, a flaw in Google’s Brotli decoder that can corrupt memory when processing crafted compressed data. The CVE record rates the vulnerability 9.2, Critical, under CVSS 4.0; the cited CISA data reports no known exploitation, while at least seven tracked projects with bundled decoder copies remained unfixed as of October 26, 2026.

The vulnerability, tracked as CVE-2026-111497, affects Google’s Brotli C decoder versions 1.0.3 through 1.2.0, according to the source material. The Node.js advisory describes a decoder that treated malformed input as if it were incomplete, allowing data to be written beyond an eight-byte internal buffer. The flaw is listed as an out-of-bounds write and an unchecked return value. Memory corruption can crash a process or expose memory; code execution is a possible worst-case outcome, not an outcome established for every affected installation.

Imperva demonstrated code execution against an official Node.js image after several attempts, according to the source. That is a reported demonstration, not evidence of attacks in the wild. CISA’s exploitation data was listed as “none,” and the vulnerability was not in CISA’s Known Exploited Vulnerabilities catalog as of the source’s October 26 reporting date.

Fixes listed in the source include Brotli 1.0.10, 1.1.1 and 1.2.1; Node.js 22.23.4, 24.22.1 and 26.12.1; Python Brotli 1.2.1 and brotlicffi 1.2.1.0; Bun 1.4.4; and specified releases of Envoy, Istio and .NET. Node.js 20, 23 and 25 were listed as receiving no fix. A restart is needed after updating because running processes continue using the decoder already loaded into memory.

At a glance
updateWhen: Developing; status as of October 26, 20…
The developmentA critical flaw in Google’s Brotli decoder has prompted security fixes across multiple ecosystems, while some bundled copies remain unpatched.
Thorsten Meyer AI
CVE-2026-111497 · 26 Oct 2026

Infographic 01 · Where Brotli decoding meets untrusted input

One decoder, many doors.

The flaw sits in Google's Brotli C decoder. Every runtime, package and tool that copies it inherits the bug. Three paths bring attacker data to it.

9.2CVSS 4.0, Critical, in Google's CVE record
1.0.3–1.2.0affected Brotli versions
3supported Node.js lines fixed on 21 Oct
~83 MPyPI downloads of Brotli in the last month

Responses your code fetches

no WAF sees these

  • Node.js fetch() decodes Brotli automatically
  • Python requests, urllib3, aiohttp, httpx[brotli], Scrapy, once a Brotli package is installed
  • Webhooks, link previews, crawlers, “import from URL”

Request bodies you accept

WAF can block br bodies

  • Express 5.0.0–5.3.0 and body-parser 2.0.0–2.3.0 inflate Brotli bodies (json(), raw())
  • Upgrading Express alone does not help: the bug is in the runtime
  • A bare Node.js HTTP server does not decode bodies on its own

Files you open or process

not only HTTP

  • Archives and .br files (7-Zip-zstd, p7zip)
  • Parquet data files (DuckDB, Apache Arrow bundled build)
  • Fonts (woff2), firmware tools (EDK II), JPEG XL via libjxl

Fixed versions

patch, then restart a running process keeps the old decoder

ComponentFixed inNote
Google Brotli (C library)1.0.10 · 1.1.1 · 1.2.11.0.3–1.2.0
Node.js22.23.4 · 24.22.1 · 26.12.120, 23, 25: no fix (end of life)
Python Brotli / brotlicffi1.2.1 / 1.2.1.01.0.3 up to 1.2.0.x
Bun1.4.4includes Brotli 1.2.1
Envoy Proxy1.40.0 · 1.39.3 · 1.38.6 · 1.37.8if Brotli decompression is configured
Istio1.29.9 · 1.30.6 · 1.31.21.29 is end of life
.NET runtime8.0.33 · 9.0.22 · 10.0.14GitHub source builds still affected
Debian brotlibookworm 1.0.9-2+deb12u1 · trixie 1.1.0-2+deb13u1DLA 4855-1 · DSA-6582-1

Official Node.js builds bundle their own Brotli, so only the Node.js version matters there; some distributions (Debian, Ubuntu 22.04+) build Node.js against the system library instead.

Sources: CVE record (Google CNA, CISA ADP 23 Oct); Node.js (21 Oct 2026); GHSA-9v8h-qqgm-4m35; Brotli releases (21 Oct 2026); Patch the Planet (23 Oct 2026); Imperva (22 Oct 2026); broccoli2shell.com (26 Oct 2026); OpenSourceMalware (23 Oct 2026); Debian tracker; pypistats.org (26 Oct 2026).
Powered by Thorsten Meyer AI

Why Brotli’s Reach Expands Exposure

Brotli is used to compress web traffic, but the decoder also arrives inside software that developers and operators may not identify as a direct Brotli dependency. Node.js fetch, Python HTTP clients, proxy software and file-processing tools can all bring the library into a system. This means exposure depends not only on the main application’s version but also on which decoder it uses and whether that component processes attacker-controlled compressed data.

The source identifies three broad paths: responses an application fetches and automatically decompresses, compressed request bodies accepted by software, and files handled by tools using Brotli. Express’s body parsers are cited as one example of a component that can inflate Brotli request bodies, but the source stresses that the bug is in Brotli, not Express; upgrading Express alone does not fix a vulnerable decoder. A bare Node.js HTTP server also does not automatically decode request bodies.

The practical consequence is a supply-chain patching task. Teams may need to update a runtime, package, operating-system library or container image, then restart services. The source says Python’s Brotli package had about 83 million downloads in the previous month, according to pypistats.org checked October 26. That is a raw download count, not a measure of vulnerable installations or active exposure.

Amazon

hardware security key FIDO2 USB-C

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

From February Fix to October Patches

The source traces the underlying code change to February 27, 2026, when a Brotli source commit titled “Detect and report invalid stream earlier” addressed the behavior. It says the commit did not identify the change as security-related. Releases carrying the fix appeared on October 21, a 236-day gap before the patched versions were released, according to the source’s timeline.

The CVE became public on October 22, and a public proof of concept appeared on GitHub that day, the source reports. Patches then had to reach projects that bundle Brotli, as well as operating-system packages and deployed images. On October 23, the source says, Python packages were missing from advisory databases before GitHub’s advisory was added later that day. As of October 26, its tracker listed seven bundled copies still unfixed, including DuckDB, Apache Arrow’s bundled build, 7-Zip-zstd, p7zip and EDK II firmware tools; it said five more had fixes in their main branches.

The source also reports that Node.js credited OpenAI Codex Security, and that OpenAI said the flaw was found during red-teaming with teams of AI agents. These are attributed descriptions of the discovery process, not evidence that AI tools alone found or confirmed every downstream instance.

Amazon

network security monitoring appliance IDS IPS

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Exposure and Exploitation Still Vary

The available information does not establish how many systems are vulnerable, how many have been patched, or whether attackers have exploited the flaw. The cited CISA data reported no exploitation as of the source’s reporting date, but that status does not prove that no unreported attacks occurred. Imperva’s code-execution demonstration shows a possible impact in a test setting; it does not establish that the same result applies to every runtime or deployment.

It also remains unclear when each of the seven tracked bundled copies still listed as unfixed will receive a release. A fix in a project’s main branch may not yet be available in a stable package or in deployed systems. The source does not provide a complete inventory of affected hosts, nor does it confirm that every application using Brotli processes untrusted compressed input.

The source separately mentions DreamHost resetting some email and FTP/SFTP passwords after an incident. It says DreamHost named no cause and that nothing links that incident to Brotli; the two developments should not be treated as connected.

Amazon

secure software development cybersecurity books

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Patch Releases and Restart Checks

Organizations should identify which Brotli implementation their software uses, apply the appropriate vendor or distribution update, and restart affected processes so they load the patched decoder. Teams should check direct dependencies as well as runtimes, proxies, containers and tools that may bundle their own copy. For Node.js installations, the source lists fixed releases for versions 22, 24 and 26, but no fix for versions 20, 23 and 25; operators should consult current project guidance for supported upgrade paths.

The near-term signal to watch is whether the remaining bundled projects publish stable fixes and whether Linux distributions and downstream images incorporate them. The tracker and advisories can change after the source’s October 26, 2026 snapshot, so the listed patch status should be checked against current vendor notices before action. No further milestone or deadline is specified in the source.

Amazon

USB-C encrypted external SSD for secure backups

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Key Questions

What is Broccoli2Shell?

It is the name used for CVE-2026-111497, a memory-corruption flaw in Google’s Brotli C decoder. The source says malformed compressed input can lead to an out-of-bounds write.

Does the flaw affect every Brotli user?

No universal exposure is established. The source lists affected decoder versions and multiple downstream projects, but actual risk depends on the implementation in use and whether software processes crafted compressed data.

Which versions have fixes?

The source lists Brotli 1.0.10, 1.1.1 and 1.2.1; Node.js 22.23.4, 24.22.1 and 26.12.1; Python Brotli 1.2.1 and brotlicffi 1.2.1.0; plus fixes for Bun, Envoy, Istio and .NET. Check the relevant vendor advisory for the version used in your environment.

Is Broccoli2Shell being exploited in the wild?

The cited CISA data reported “exploitation: none” as of October 26, 2026, and the CVE was not in CISA’s Known Exploited Vulnerabilities catalog. The source does not establish whether any unreported exploitation has occurred.

Is upgrading enough, or must services restart?

The source says a restart is required because a running process continues to use the decoder loaded before the update. Apply the relevant patch and restart affected services.

Source: ThorstenMeyerAI.com

HALLOWEEN

Halloween Picks

As an affiliate, we earn on qualifying purchases.

You May Also Like

Step-by-Step: Using Automation-Flow Rebuilders To Upgrade Your Email Platform

New automation-flow rebuilder simplifies migrating email campaigns, reducing manual effort and errors for agencies switching platforms.

Undervolting Your GPU for Local Inference: Lower Heat, Same Tokens/sec

Undervolting your GPU via power limiting can reduce heat and noise with minimal impact on tokens/sec during AI inference tasks.

Are These The Top 9 AI Laptops For Content Creators In 2026?

Discover the nine best AI-powered laptops for content creators in 2026, featuring performance, portability, and value for demanding workflows.

The Bubble Question, Disentangled: 1999 vs 2026 Category by Category

A detailed analysis compares the 1999 dotcom bubble with the 2026 AI cycle, examining categories of investments, valuation signals, and implications for the future.