Why Broccoli2Shell Matters Across Node.js, Python, And Beyond
KIDieser Beitrag wurde mit Unterstützung künstlicher Intelligenz (KI) erstellt.

🔍 Read the full analysis: Why Broccoli2Shell Matters Across Node.js, Python, And Beyond on ThorstenMeyerAI.com

Buying for a business?Offer from Amazon

Get business pricing on office and shipping supplies

  • 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

A flaw in Google’s Brotli decoder, tracked as CVE-2026-111497, can corrupt memory when software processes crafted compressed data. Fixes are available for several runtimes and packages, including Node.js and Python, but an independent tracker listed seven bundled copies as unfixed on Oct. 26, 2026. No exploitation in the wild was reported in the cited records.

Security fixes for CVE-2026-111497, a flaw in Google’s Brotli compression decoder, are now available across Node.js, Python packages and other software, but some projects that bundle their own decoder copy remain unpatched. The vulnerability can cause an out-of-bounds memory write when software processes crafted compressed data, putting applications that decode Brotli content at risk of crashes, memory exposure or, in severe cases, code execution.

The affected C decoder versions are listed as 1.0.3 through 1.2.0. According to the Node.js advisory, the decoder mishandled malformed input that it treated as incomplete, allowing data to be written beyond an eight-byte internal buffer. The CVE record identifies an out-of-bounds write and an unchecked return value. The patched decoder instead stops with a format error.

Fixes listed in the source material 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; and Bun 1.4.4. Updates are also listed for Envoy, Istio, .NET and Debian. Node.js 20, 23 and 25 are identified as receiving no fix.

Updating software may not be enough for already-running services: the source says a process retains its existing decoder until it is restarted. An independent tracker listed seven bundled copies still unfixed as of Oct. 26, including copies associated with DuckDB, Apache Arrow, 7-Zip-zstd, p7zip and EDK II firmware tools. Five other projects had fixes in their main development branches, according to the same tracker.

At a glance
updateWhen: Developing; information current as of O…
The developmentPatches for the Broccoli2Shell Brotli decoder vulnerability are spreading across runtimes and packages, 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

One Decoder, Many Software Stacks

Brotli is used to compress and decompress data across web services and software tools. Because the flaw is in a shared decoder rather than in a single application, the affected footprint can include multiple languages and deployment layers. Software may use the decoder through a package, bundle its own copy, or rely on a runtime or operating-system build.

Exposure depends on what a system does with compressed input. The source identifies automatically decoded web responses, accepted Brotli-compressed request bodies and files processed by tools as potential routes. For example, Node.js’s built-in fetch can decode Brotli responses, while some Python HTTP clients do so when a Brotli package is installed. Express and body-parser versions listed in the source can inflate Brotli request bodies, but the issue is in the decoder: upgrading Express alone does not fix it.

This layered supply chain affects both patching and risk assessment. A team must identify the actual decoder in use, update the relevant runtime or package, and restart processes. A scanner that checks only direct dependencies may miss a decoder copied into another project. The source reports that seven bundled copies remained unfixed on Oct. 26, making inventory and vendor updates part of the response rather than a one-time package upgrade.

Amazon

Top picks for "broccoli2shell matter acros"

As an affiliate, we earn on qualifying purchases.

From February Fix to October Alerts

The source traces the underlying code change to Feb. 27, 2026, when a Brotli commit titled “Detect and report invalid stream earlier” addressed the behavior. The change did not identify a security vulnerability, according to the source. Releases carrying the fix appeared on Oct. 21, a gap of 236 days.

The CVE became public on Oct. 22, according to the source, and a public proof of concept appeared on GitHub that day. On Oct. 23, OpenSourceMalware reported that no advisory database then listed the Python packages, leaving dependency scanners without those entries; GitHub’s advisory added them later that day. These dates help explain why fixes have to move through a chain of upstream libraries, language runtimes, packages, distributions, container images and running services.

The source describes this as part of a wider pattern in which a small shared parsing library can affect software written in different languages. It also says Node.js credited OpenAI Codex Security, and OpenAI said the flaw was found during red-teaming with teams of AI agents. Those statements describe the discovery process; they do not change which products require updates.

““A bigger deal than PHP2Shell””

— Juliano Rizzo, security researcher, as quoted by broccoli2shell.com

Exposure and Exploitation Status

The available information does not establish how many systems remain vulnerable or whether attackers have used the flaw outside demonstrations. The source says CISA data listed “exploitation: none” and that the CVE was not in CISA’s Known Exploited Vulnerabilities catalog as of Oct. 26. That status does not rule out future exploitation.

Imperva reportedly ran code on an official Node.js image after several attempts, but the source does not provide enough technical detail to assess the conditions needed to reproduce that result. The affected bundled copies may also change as maintainers issue releases. Teams will need to verify their own dependency trees and the specific builds deployed; a general product name may not reveal whether the system uses a patched bundled decoder or an affected system library.

Patch Releases and Restarts

Operators should check the version of Brotli used by each runtime, package, operating-system build and bundled tool, then apply the matching vendor fix. For Node.js, the source lists patched releases 22.23.4, 24.22.1 and 26.12.1; Node.js 20, 23 and 25 are listed without fixes. Python users should check both Brotli and brotlicffi dependencies. Where a project bundles Brotli, its own advisory or release may be needed.

After updating, teams should restart affected processes so they load the patched decoder, and rebuild or redeploy images that contain old copies. They should also monitor advisories for the seven projects the tracker still listed as unfixed on Oct. 26. The source does not give a final date for those updates, so the patch status remains developing.

Key Questions

What is Broccoli2Shell?

Broccoli2Shell is the name used for the vulnerability in Google’s Brotli decoder tracked as CVE-2026-111497. The source says malformed compressed input can cause an out-of-bounds write, with possible effects including a crash, memory exposure or, in severe cases, code execution.

Which Node.js versions have fixes?

The source lists Node.js 22.23.4, 24.22.1 and 26.12.1 as fixed. It says Node.js 20, 23 and 25 do not receive a fix. Check the applicable Node.js security advisory for current release details.

Does upgrading Express fix the issue?

No, not by itself. The source says the vulnerability is in Brotli, not Express. Some Express and body-parser versions inflate Brotli request bodies, but the decoder package or runtime providing Brotli must be patched as well.

Is the flaw being exploited in the wild?

The cited source reports no known exploitation in the wild: CISA data listed “exploitation: none,” and the CVE was not in CISA’s Known Exploited Vulnerabilities catalog as of Oct. 26, 2026. That is a status report, not a guarantee that exploitation will not occur.

Why must services be restarted after patching?

A running process continues using the decoder already loaded into memory, according to the source. Restarting after the update allows the service to load the patched version; container images and other deployed copies may also need rebuilding or redeployment.

Source: ThorstenMeyerAI.com

This content is for general information only and is not financial, tax or legal advice. Consult a qualified professional for decisions about your money.
HALLOWEEN

Halloween Picks

As an affiliate, we earn on qualifying purchases.

You May Also Like

What A Day’s Coincidence In AI Markets Might Mean For Investors

Baidu and Mistral released OCR models within 24 hours, highlighting diverging strategies and market dynamics in AI document processing for investors.

Hikvision Jako Pierwsza Firma W Branży Uzyskuje Certyfikat EUCC Dla Kamer Sieciowych

Hikvision has become the first company in the security industry to receive the EUCC certification for its network cameras, marking a significant regulatory milestone.

Cheap AI And The Open-Weight Industry’s Price War: What You Need To Know

Alibaba’s release of a low-cost, open-licensed AI model is fueling a global price war, shifting developer preferences and raising geopolitical questions.

What Makes The Light Feel Suspended In “OORT — Comet Vigil For P/2043 K1 Vesper”?

OORT is an AI-built exhibition about a fictional comet, using persistent star trails and interactive orbital diagrams to make waiting visible.