Could A Compression Bug Cross Your Stack? Understanding Broccoli2Shell
AIThis post was created with the assistance of artificial intelligence (AI).

🔍 Read the full analysis: Could A Compression Bug Cross Your Stack? Understanding Broccoli2Shell on ThorstenMeyerAI.com

Before you orderOffer from Amazon

Get hardware and tech essentials delivered free with Prime

  • Fast, free delivery on millions of items
  • Prime Video, Amazon Music and more included
  • Member-only deals all year
Start your free Prime trial Free trial for eligible customers · Cancel anytime
As an affiliate, we earn on qualifying purchases.

TL;DR

A memory-corruption vulnerability in Google’s Brotli C decoder affects versions 1.0.3 through 1.2.0 and has been carried into multiple runtimes and applications. Patches are available for several widely used projects, but some bundled copies remain unfixed; the supplied source reports no known exploitation in the wild.

A flaw in Google’s Brotli decoder can corrupt memory when software processes specially crafted compressed data, prompting security updates across Node.js, Python and other projects. The vulnerability, tracked as CVE-2026-111497, affects Brotli C decoder versions 1.0.3 through 1.2.0; patches are available for several major users, while some projects that bundle their own copies remain unpatched, according to the supplied security report.

The flaw occurs when the decoder treats malformed compressed input as incomplete data and continues processing it. According to the Node.js security advisory cited in the report, that behavior can cause writes beyond an eight-byte internal buffer. The resulting memory corruption could crash a process, expose memory contents or, in a severe case, allow code execution. The CVE record identifies an out-of-bounds write and an unchecked return value. These are potential consequences; the source does not say every affected use is exploitable in the same way.

The report says Google’s CVE record assigns the issue a CVSS 4.0 score of 9.2, classified as Critical. Imperva demonstrated code execution on an unmodified Node.js build after several attempts, according to the source. That demonstration establishes a risk in that test environment, but the report says CISA data lists exploitation as “none” and the CVE was not in CISA’s Known Exploited Vulnerabilities catalog as of October 26. Those indicators do not prove that no private or unreported attack has occurred.

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 updates for Envoy, Istio, .NET and Debian. Version support differs by product: the report says Node.js 20, 23 and 25 have no fix. Because a running process continues using its loaded decoder, patching also requires restarting affected processes.

At a glance
updateWhen: Developing as of October 26, 2026; the…
The developmentSecurity updates for a critical Brotli decoder flaw are spreading across runtimes and packages after the vulnerability was disclosed on October 22, 2026.
Crypto market snapshot
Fear & Greed Index
50/100 — Neutral
Bitcoin BTC$80,168▼ 0.4%
Ethereum ETH$2,324▼ 1.1%
Tether USDT$0.9993▲ 0.0%
BNB BNB$741.04▼ 0.3%
XRP XRP$1.29▼ 0.6%
USDC USDC$0.9998▲ 0.0%
Solana SOL$101.32▼ 0.5%
TRON TRX$0.3299▲ 0.4%
Live data · CoinGecko · alternative.me (24h change)
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

One Decoder, Many Software Stacks

Brotli is widely used to compress web traffic, so a weakness in its decoder can reach beyond one application or programming language. The report identifies exposure paths that include software fetching compressed responses, services that accept compressed request bodies, and tools that process files. Node.js’s built-in fetch can decode Brotli responses automatically; Python HTTP clients may do so when a Brotli package is installed. Express body parsers can also inflate Brotli request bodies in certain versions, although the underlying defect is in Brotli, not Express.

This makes the issue a software supply-chain problem: a fix to the original library must reach every runtime, package, distribution, container image and deployed process that contains the vulnerable code. Updating a top-level framework alone may not replace a bundled decoder. The report’s tracker listed more than 30 projects and packages that bundle their own copies, with seven still unfixed as of October 26. That count is a tracker observation, not a measure of how many systems are exposed.

For operators, the practical concern is whether untrusted or externally supplied compressed data reaches an affected decoder. The source describes a range of possible uses, but does not establish that every listed integration accepts attacker-controlled input. Teams need to check their actual dependency and data flows rather than infer exposure solely from a product name. Security updates and restarts reduce the risk where a vulnerable decoder is present; they do not, by themselves, establish whether a system was previously targeted.

Products Worth Considering

LG UltraGear 27G640A-B 27-Inch QHD IPS Gaming Monitor, 300Hz, 1ms, G-SYNC Compatible, FreeSync Premium, DisplayHDR 400

LG UltraGear 27G640A-B 27-Inch QHD IPS Gaming Monitor, 300Hz, 1ms, G-SYNC Compatible, FreeSync Premium, DisplayHDR 400

LG UltraGear 27-Inch QHD OLED Gaming Monitor, 240Hz, 0.03ms, G-SYNC Compatible, FreeSync Premium Pro, HDMI 2.1

LG UltraGear 27-Inch QHD OLED Gaming Monitor, 240Hz, 0.03ms, G-SYNC Compatible, FreeSync Premium Pro, HDMI 2.1

As an affiliate, we earn on qualifying purchases.

From Source Fix to Public Disclosure

The report traces the underlying code change to a Brotli source commit dated February 27, 2026, titled “Detect and report invalid stream earlier.” It says the change did not identify itself as a security fix at the time. OpenAI later said the vulnerability was not known then to arise from the change and that Brotli had no more recent release. Releases containing the fix appeared on October 21, according to the report: a gap of 236 days between the source change and those releases.

The CVE became public on October 22, and the source says a public proof of concept appeared on GitHub that day. Patches then began moving into downstream projects. The report says Node.js credited OpenAI Codex Security, while OpenAI described finding the flaw during red-team work with teams of AI agents. That attribution concerns discovery; it does not change the need for maintainers and users to verify which versions contain the fix.

The issue has also been given the name “Broccoli2Shell.” The source attributes comparisons with other recent vulnerabilities to researcher Juliano Rizzo, who called it “a bigger deal than PHP2Shell” and compared it to “zlib 20 years ago.” These are his assessments, not findings that determine the vulnerability’s actual reach. The same report notes that some dependency scanners did not list the Python packages in their advisory databases on October 23, illustrating how disclosure and package-level tracking can lag behind one another.

Exposure and Unfixed Copies

The source reports no known exploitation in the wild as of October 26, citing CISA data and the CVE’s absence from the Known Exploited Vulnerabilities catalog. That is a status report, not proof that exploitation has not occurred. The supplied material does not identify any confirmed attack victim, stolen data or incident tied to this CVE.

It also does not establish how many deployed services are vulnerable or which are reachable by malicious input. The source says seven bundled copies remained unfixed in its tracker, including copies associated with DuckDB, Apache Arrow’s bundled build, 7-Zip-zstd, p7zip and EDK II firmware tools. A tracker entry does not necessarily mean a particular installation is exposed: product versions, configuration and whether untrusted data reaches the decoder matter. Some projects had fixes in their main branches but had not necessarily shipped a release.

The report’s version list is a snapshot and may change as maintainers publish updates. It does not provide a complete, independently verified inventory of every affected package or operating system. Readers should consult current vendor advisories for their installed versions, including whether their distribution uses a system Brotli library or a separately bundled copy.

Patch Releases and Process Restarts

Organizations should use vendor advisories and software inventories to identify affected Brotli versions, update to a fixed release where one is available, and restart processes that load the decoder. The source’s version list is a starting point, not a substitute for checking each product’s current guidance. Node.js users should pay particular attention to the specified supported release lines; the report says versions 20, 23 and 25 do not receive a fix.

Teams should also check indirect dependencies and bundled libraries, rather than assuming an update to an application framework replaces Brotli. Where a project has not shipped a fixed version, maintainers’ advisories or release pages will be needed to establish the available mitigation and timetable. The supplied material does not specify a universal workaround for all affected products.

The next indicators are additional downstream releases, updates to vulnerability databases and changes in reports of exploitation. The source identifies no confirmed in-the-wild attacks as of October 26, but that status could change. For now, the confirmed operational step is to verify affected components, apply the appropriate vendor fixes and reload the processes that use them.

Key Questions

What is Broccoli2Shell?

It is the name used in the supplied report for CVE-2026-111497, a memory-corruption flaw in Google’s Brotli C decoder. The defect affects decoder versions 1.0.3 through 1.2.0, according to the report.

Does the flaw affect only Node.js?

No. The underlying decoder is used by or bundled into several runtimes and projects. The report lists affected or patched components including Node.js, Python Brotli packages, Bun, Envoy, Istio, .NET and Debian. Actual exposure depends on the installed version and how the software processes compressed data.

What should affected teams do?

Check vendor advisories and dependency inventories, update affected components to a fixed version where available, and restart processes so they load the patched decoder. Also check for bundled copies that may not be updated when a top-level package changes.

Is Broccoli2Shell being exploited?

The supplied report says CISA data listed exploitation as “none” and the CVE was not in CISA’s Known Exploited Vulnerabilities catalog as of October 26, 2026. It reports a code-execution demonstration by Imperva, but no confirmed attacks in the wild. The absence of a public listing does not rule out unreported activity.

Why might a patch not appear in my dependency scanner?

Security advisories and package databases can update at different times. The source says some advisory databases did not list the affected Python packages on October 23, before GitHub’s advisory was added later that day. Check current vendor and package-maintainer notices as well as automated scanner results.

Source: ThorstenMeyerAI.com

Nothing in this article is financial or investment advice. Cryptocurrency and precious-metal investments carry significant risk — do your own research and consider a licensed advisor.
You May Also Like

2026’S Top Graphics Cards For AI And Computational Power

Explore the leading graphics cards of 2026 for AI and computational tasks, including NVIDIA and AMD options, performance insights, and future-proofing features.

Get Noticed In Your Badminton Community With Match Sharing And Rankings

A mobile app is being tested to help recreational badminton players share match highlights, track rankings, and improve visibility within their communities.

AI Automation Software For Small Businesses: A Buyer’s Guide

A buyer’s guide compares Zapier and Make for small businesses, from setup and integrations to AI workflows, costs and human review.

AmenGate: The Moment Before the Scroll

AmenGate is a prayer-lock app for iPhone designed to turn phone interruptions into moments of prayer, built on trust and tradition to foster meaningful reflection.