A critical vulnerability in Brotli, the C decoder library built into Node.js, could allow attackers to corrupt memory, expose sensitive data and potentially execute code remotely. Tracked as CVE-2026-111497, the flaw has been called “HTTP2Shell,” “Broccoli2Shell” and “Node2Shell.” It affects Brotli versions 1.0.3 through 1.0.9, 1.1.0 and 1.2.0.
The vulnerability was initially identified in Node.js, but researchers later found that the same flaw in the Brotli decoder could affect software across multiple ecosystems.
A vulnerability with broad reach
Although the name HTTP2Shell reflects the flaw’s impact on HTTP clients and servers, the vulnerability is not specific to HTTP/2. It could also affect other attacker-controlled applications that decompress Brotli data.
Besides Node.js, potentially affected software includes Python HTTP clients and applications that use vulnerable Brotli decoders, including urllib3[brotli], requests, httpx and aiohttp[speedups].
Microsoft also released an emergency security update on Sunday for a separate .NET issue, warning that a successful exploit could enable privilege escalation on systems running vulnerable .NET versions.
Brotli is an open-source project developed and maintained by Google for lossless data compression. Compression allows files to be transmitted more quickly without changing the original data.
How the flaw works
Node2Shell is a buffer-overflow vulnerability. A specially crafted Brotli-compressed stream can trigger an invalid block switch that the decoder mistakenly treats as valid. The decoder then interprets it as a request for more input.
When additional input bytes are repeatedly added to the decoder’s internal 8-byte buffer, the write can extend beyond the buffer’s boundaries and corrupt nearby memory.
“The streaming decoder continued to add input bytes to its internal 8-byte buffer because the invalid block switch was reported as a temporary need for additional input rather than a permanent formatting error,” Node.js said in its vulnerability description.
An attacker could exploit the issue by causing an application to decompress malicious data. Possible attack paths include providing a compressed HTTP response to an application that retrieves a URL or sending a compressed request directly to a server.
According to Node.js, exploitation could crash a process, expose memory and potentially enable remote code execution (RCE).
Recent reports from cybersecurity companies, including Imperva, say exploitation of CVE-2026-111497 could lead to RCE.
Available fixes
The upstream Brotli fix was first committed to the project’s source code in February. Node.js and Google released stable fixes on October 21, and the updates became publicly available the following day. A PyPI package containing the fix was released on October 23.
The patched versions are:
- Google 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
- Python BrotliPy 1.2.1.0
Proof-of-concept (PoC) exploits for Node2Shell are publicly available, but there have been no reports of malicious exploitation in the wild. Users should nevertheless prioritize installing the available security updates.
After updating, administrators must restart affected processes and rebuild and redeploy affected container images.
A dedicated online portal tracks the vulnerability’s impact. It warns that updating the system Brotli library does not protect Node.js deployments or other applications that include their own bundled copies of the library.
Blocking incoming Brotli requests alone also leaves the malicious HTTP-response attack path exposed.
If an immediate update is not possible, the recommended mitigations are to remove Brotli support from Python applications and block incoming Brotli-compressed requests at the proxy or firewall level.
The overall prevention score can hide what happens after the initial access. If an attacker uses valid credentials, your defenses drop sharply.
The Blue Report 2026 measures defense techniques by technology across 338 million simulations run in customer production environments.
Source: www.bleepingcomputer.com



