Developers reviewing Brotli decoder logs after the CVE‑2026‑111497 disclosure.
*The CVE‑2026‑111497 flaw, first seen in Node.js as “node2shell,” now reaches any software that decodes Brotli over HTTP. Patches are arriving, but many stacks remain exposed.*
On Wednesday, October 21st Node.js disclosed a critical flaw in its Brotli decoder, labeled CVE‑2026‑111497 and nicknamed “node2shell.” The next day Python maintainers confirmed that popular Python packages suffered the same vulnerability. By Friday, October 23rd the issue had ballooned into a cross‑language emergency, affecting any application that decodes Brotli over HTTP. The rapid escalation shows how a single library flaw can cascade through the software supply chain. Patches are now emerging for libbrotli, Node.js, Python, C++, Bun and Envoy, but many deployments remain unpatched. Operators must act now or risk remote code execution, data leakage and service disruption.
CVE‑2026‑111497 is an out‑of‑bounds write in the Google Brotli decoder affecting versions 1.0.3 through 1.2.0 on all platforms. The bug lets a remote, unauthenticated attacker send a crafted Brotli stream that overflows a small working buffer, corrupting memory, leaking data, crashing the process, or executing arbitrary code. The flaw carries a CVSS v4.0 score of 9.2, classifying it as critical. Node.js is impacted through its bundled Brotli library, and the same decoder flaw underlies the earlier “node2shell” disclosure.
The vulnerability spreads beyond Node.js. Python packages that bundle Brotli or brotlicffi version 1.2.0 or earlier load the decoder automatically in clients such as requests, httpx and aiohttp. C++ applications using libbrotli, the Bun runtime, and Envoy proxies also ship vulnerable copies. Apache’s standard mod_brotli does not decode Brotli by default, and Nginx behaves similarly, leaving them untouched. The impact reaches any service that accepts HTTP‑compressed payloads without a patched decoder.
Apply the vendor patches immediately. Node.js users should upgrade to 22.23.4, 24.22.1 or 26.12.1, or a newer supported release. Update native Brotli or libbrotli to 1.2.1 or later; older lines can use patched 1.0.10 or 1.1.1. Python environments need Brotli 1.2.1 and brotlicffi 1.2.1.0. Bun must move to 1.4.4 or later, and Envoy to 1.40.0, 1.39.3, 1.38.6 or 1.37.8. Where patches are unavailable, disable Brotli decoding until a fix lands. Rebuild container images, refresh dependency locks, redeploy services, and verify that running workloads use the patched components.
OpenAI identified the underlying Brotli flaw in February, fixing the root cause in the upstream source code at that time. However, the security implications were not recognized, and no release shipped the fix until the recent disclosures. OpenAI’s advisory notes that the vulnerability enables unauthenticated remote code execution in both client‑to‑server and server‑to‑client directions, underscoring the need for coordinated disclosure and rapid vendor response.
Versions 1.0.3 through 1.2.0 of the Brotli decoder are vulnerable, as are brotlicffi 1.2.0.x releases.
Node.js, Python, C++, Bun and Envoy have published patched releases; Apache and Nginx do not decode Brotli by default.
Disable Brotli decoding in the affected application until a patched version can be deployed.
The Brotli bug illustrates the hidden danger of widely shared compression code. With patches rolling out across runtimes, the window for exploitation is closing, but only if organizations audit their stacks, disable unpatched decoding, and verify that every container image reflects the latest fixes. Failure to act will leave critical web services exposed to a remote code execution vector that spans languages and platforms.
Sources: Hacker News