Skip to main content
CybersecurityVulnerability Management

Brotli Flaw Exposes Sensitive Data Across Multiple Ecosystems

CVE-2026-111497 — a critical buffer-overflow in the Brotli C decoder — can be triggered by specially crafted compressed data and, according to vendors, can lead to process crashes, memory disclosure and remote code execution.

How the bug works: an invalid block switch and an eight-byte buffer

The flaw, tracked as CVE-2026-111497 and also called “HTTP2Shell,” “Broccoli2Shell” and “Node2Shell,” is a buffer overflow in the Brotli streaming decoder. Node.js describes the root cause in plain terms: “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.” By continuing to append bytes past the buffer boundary, the decoder can corrupt adjacent memory.

That memory corruption can be provoked when an application decompresses attacker-controlled Brotli data — for example, when fetching a URL that returns a compressed HTTP response or when a server receives a compressed request. Node.js warns the outcome can be a crash, exposure of memory and, in some cases, remote code execution. A separate report from Imperva confirms that exploitation of the vulnerability can lead to RCE.

Scope: libraries, runtimes and affected versions

The flaw was first spotted in Node.js but was later traced to the Brotli decoder itself, widening the impact across ecosystems. Affected Brotli releases are 1.0.3 through 1.0.9, 1.1.0 and 1.2.0. Potentially affected software named in vendor advisories and reports includes:

  • Node.js deployments that bundle the vulnerable Brotli decoder
  • Python HTTP clients configured with a vulnerable Brotli decoder, including urllib3[brotli], requests, httpx and aiohttp[speedups]
  • Other applications and tools that use a bundled or system Brotli implementation

Microsoft issued an emergency security update for .NET, warning that successful exploitation allows privilege escalation on systems running a vulnerable .NET version.

Patches, timeline and published proof-of-concept code

Upstream fixes were first committed in February. Stable fixes from Node.js and Google were released on October 21, with public disclosure following the next day; PyPI packages with fixes became available on October 23.

  • Google Brotli: 1.0.10, 1.1.1, 1.2.1
  • Node.js: 22.23.4, 24.22.1, 26.12.1
  • Python Brotli: 1.2.1
  • Python brotlicffi: 1.2.1.0

Proof-of-concept (PoC) exploits for Node2Shell have been published. At the time of the advisories there were no reports of malicious exploitation in the wild, but vendors and researchers urge that users prioritize applying available security updates.

Mitigations and operational steps for administrators

Vendors and tracking portals make several concrete recommendations. Patching the affected libraries and runtimes is the priority; after updating, administrators must restart affected processes. Container images that include vulnerable Brotli copies must be rebuilt and redeployed to remove the vulnerable code path.

Two important operational caveats are called out: updating the system Brotli library does not mitigate risk for apps that bundle their own Brotli copy, and blocking inbound Brotli-compressed requests still leaves the HTTP-response attack route open. For organizations that cannot patch immediately, the suggested interim steps include removing Brotli support from Python applications and blocking incoming Brotli-compressed requests at a proxy or firewall.

What this means for technologists, enterprises, and incident responders

Technologists and security teams must inventory where Brotli is used — including bundled copies inside runtimes and libraries — and apply the precise patched versions listed above. Enterprises running .NET should treat Microsoft’s emergency update as a priority because the vendor explicitly warns of possible privilege escalation. Incident responders should note that PoC code exists and so should monitor for exploitation attempts, but there were no confirmed in-the-wild attacks reported at the time of disclosure.

Procurement and application owners should also account for the fact that system-level package updates are not a complete fix when applications bundle third-party libraries; rebuilt containers and redeployments are required to fully remove the vulnerable code paths.

The technical details are straightforward and the operational challenge is blunt: the vulnerability lives inside a widely used compression decoder, vendors have issued patches, and exploit code is public. Organizations that delay patching face a concrete route to memory corruption and, potentially, remote code execution. Apply the fixed releases, restart services and rebuild images to close the window this flaw has opened.

Source: https://www.bleepingcomputer.com/news/security/critical-http2shell-brotli-vulnerability-triggers-emergency-patches/