AIThis post was created with the assistance of artificial intelligence (AI).

🔍 Read the full analysis: What Developers Should Check When Addressing Broccoli2Shell on ThorstenMeyerAI.com

Buying for a business?Offer from Amazon

Get business pricing on tech for your team

  • Business-only prices and quantity discounts
  • Tax-exempt purchasing
  • Multiple users, one account, clear invoices
As an affiliate, we earn on qualifying purchases.

TL;DR

CVE-2026-111497, known as Broccoli2Shell, is a memory-corruption flaw in Google’s Brotli decoder affecting versions 1.0.3 through 1.2.0 and software that includes them. Fixes are available across several runtimes and packages, but developers need to check how Brotli enters their stack and restart processes after patching. CISA reports no known exploitation in the wild; the scope of unfixed bundled copies is still developing.

Developers are being urged to check and patch CVE-2026-111497, a memory-corruption flaw in Google’s Brotli decoder that can affect applications and runtimes using vulnerable versions. Fixes are available for several major platforms, but exposure depends on how each product uses or bundles Brotli, and services must be restarted to load updated code.

The flaw affects Brotli versions 1.0.3 through 1.2.0. The CVE record describes an out-of-bounds write and an unchecked return value. According to the Node.js advisory, malformed compressed input could be treated as incomplete rather than invalid, allowing the decoder to write beyond an internal buffer. Possible consequences include a crash or memory corruption; code execution is a potential worst-case impact, not a confirmed outcome for every affected system.

Available fixes 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 releases of Envoy, Istio and .NET listed in the source material. Debian has published fixes for bookworm and trixie. Developers should verify exact package and platform advisories rather than assuming that upgrading an application framework updates its Brotli dependency.

Node.js says its official builds bundle Brotli, making the Node.js version the relevant fix path for those builds. Some Linux distributions instead link Node.js to a system Brotli library. Python applications may receive Brotli decoding through HTTP clients and related packages, while services that accept compressed request bodies or process compressed files also need review. A patched package does not replace the decoder already loaded by a running process: restart affected services after updating.

At a glance
updateWhen: Patches released beginning October 21,…
The developmentA critical Brotli decoder vulnerability has prompted patches across runtimes and packages, putting developers on notice to find bundled copies and restart affected services.
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

Where Brotli Enters Your Stack

The issue matters because Brotli is a shared compression component, not a vulnerability limited to one product. A vulnerable decoder can reach production through a runtime, a direct package dependency, an operating-system library or a copy bundled inside another tool. The source material’s independent tracker lists more than 30 projects and packages that include their own copy, though that count is not an official inventory and can change as maintainers publish updates.

Developers should check both incoming compressed data and software that reads compressed files. For example, Node.js fetch decodes Brotli responses automatically. Python HTTP libraries can do so when Brotli support is installed. The source reports that Express and body-parser versions in specified ranges inflate Brotli request bodies, but emphasizes the flaw is in Brotli, not Express; updating Express alone is not a substitute for updating the decoder. A bare Node.js HTTP server does not automatically decode request bodies.

Prioritize internet-facing services and features that process data from outside the organization, then include internal jobs and file-processing tools in the review. The CVE record assigns a CVSS 4.0 score of 9.2, rated Critical. That indicates high assessed severity, but it does not establish that a particular deployment is exploitable or has been attacked.

Products Worth Considering

As an affiliate, we earn on qualifying purchases.

From Source Fix to Runtime Patches

The source material dates the underlying Brotli change to February 27, 2026, when a commit titled “Detect and report invalid stream earlier” was made. It says the commit did not identify the change as security-related. Releases containing the fix began appearing on October 21, a gap of 236 days. That history helps explain why the vulnerable code had time to appear in downstream software; it does not by itself show that every project had notice of a security issue during that period.

The CVE became public on October 22, according to the supplied account, and a public proof of concept appeared the same day. Node.js shipped security releases on October 21, while Python package fixes and distribution advisories followed. The source says some dependency scanners did not list the Python packages on October 23, before an advisory was added later that day. This illustrates why developers should check upstream security notices as well as scanner results.

There are important version differences. The source lists fixes for Node.js 22, 24 and 26, and says Node.js 20, 23 and 25 have no fix. Teams on those branches should consult official project guidance for a supported upgrade or mitigation path; they should not assume a patch exists. The stated fixed versions are a snapshot dated October 26, 2026, so maintainers’ advisories should be checked for later changes.

“A bigger deal than PHP2Shell”

— Juliano Rizzo, as quoted by the supplied article

Unfixed Copies and Exposure Status

As of October 26, the supplied tracker lists seven bundled copies as still unfixed, including copies associated with DuckDB, Apache Arrow, 7-Zip-zstd, p7zip and EDK II firmware tools. It also says five additional projects had fixes in their main branches. These tracker findings are not a complete official accounting, and a fix in a development branch may not yet be present in a released version. Confirm each project’s status with its maintainers.

Known exploitation remains unconfirmed. The source says Imperva demonstrated code execution on an unmodified official Node.js image after several attempts. That is a reported demonstration under specific conditions, not evidence that attackers are using the flaw in the wild. The supplied account says CISA data lists exploitation as “none” and that the CVE is not in CISA’s Known Exploited Vulnerabilities catalog. Those records describe the reported status at the time of writing; they cannot establish that no unreported activity exists.

For an individual system, the affected route and practical impact depend on the exact decoder, build configuration, input path and runtime version. The source does not provide a complete list of vulnerable configurations or a universal test for exposure. Developers should avoid treating the CVSS score or a demonstration as proof that every deployment is remotely exploitable.

Patch, Restart, Verify Coverage

Start with an inventory of runtime and package versions, including operating-system libraries and bundled dependencies that standard package manifests may not show. Check release notes for the exact product and build, then apply a fixed version or follow the maintainer’s supported guidance where a fix is unavailable. Give priority to services that decode untrusted responses or request bodies, while also reviewing tools that unpack or inspect compressed files.

After patching, restart affected processes and verify that deployed containers, hosts and serverless images actually use the fixed decoder. Retest dependency and vulnerability scans after advisory data has updated, but do not rely on a clean scan alone: bundled copies and delayed advisory listings may be missed. Teams should continue to monitor vendor and distribution notices as downstream fixes are released.

The next meaningful milestone is the release or confirmation of fixes for the remaining bundled copies, alongside updated guidance for unsupported Node.js branches. The source gives no confirmed timeline for those projects, so affected teams should check maintainers’ current advisories rather than wait for a general all-clear.

Key Questions

What is Broccoli2Shell?

Broccoli2Shell is the name used for CVE-2026-111497, a flaw in Google’s Brotli decoder. The reported bug can cause memory corruption when the decoder processes certain malformed compressed input.

Which Brotli versions are affected, and which are fixed?

The supplied material identifies Brotli 1.0.3 through 1.2.0 as affected. It lists fixed library releases as 1.0.10, 1.1.1 and 1.2.1. Check the advisory for your specific package because downstream products may bundle or modify the decoder.

Is upgrading Express enough to address the flaw?

No. The reported vulnerability is in Brotli, not Express. If a service uses a vulnerable Brotli decoder to inflate request bodies, updating Express alone may leave that decoder unchanged. Verify and patch the actual dependency or bundled library.

Does a successful patch require a restart?

Yes, according to the supplied material: a running process can keep using the old decoder after its files or packages are updated. Restart affected processes, then confirm the deployed runtime or image contains the fixed version.

Has the flaw been exploited in the wild?

The supplied source says CISA’s data reports no exploitation and the CVE is not listed in CISA’s Known Exploited Vulnerabilities catalog. Imperva reportedly demonstrated code execution on an unmodified Node.js image, but that is not confirmation of attacks in the wild. The status may change as reporting develops.

Source: ThorstenMeyerAI.com

You May Also Like

What to Check Before Buying a Rackmount UPS for a Lab Setup

Ineffective checks before purchasing a rackmount UPS can lead to costly mistakes; discover essential factors to ensure optimal lab setup performance.

Home Lab Rack Planning: Depth, Airflow, and Power

Unlock essential tips for home lab rack planning, ensuring proper depth, airflow, and power—all vital for a safe, efficient setup that demands your attention.

Build Caching Can Save Hours If You Do It Right

Optimizing build caching can save hours and improve reliability, but mastering its strategies is key to unlocking its full potential.

Meridian Intelligence Group’s Approach To Engineering And Validating Recursive Self-Improvement

A headline-only report says Meridian Intelligence Group engineers and validates governed recursive self-improvement; technical details are unavailable.