Google Brotli decoder has been found to contain a serious memory corruption vulnerability tracked as CVE-2026-111497. The flaw impacts Node.js, Python, Bun, Envoy and any other software that embeds the official Google Brotli implementation.
What is Brotli and why the impact is so broad
Brotli is a compression format developed by Google and now used for the majority of web traffic to reduce bandwidth and improve page-load times. Because it is part of the modern web standard, virtually every major web server, CDN and proxy relies on the same upstream decoder code. Node.js ships Brotli support natively, Python provides the brotli and brotlicffi packages, the Bun JavaScript runtime includes it by default, and the Envoy cloud-native proxy uses it when Brotli decompression is enabled.
The vulnerability is an Out-of-Bounds Write. An attacker who supplies a malicious Brotli-compressed payload can cause the decoder to write beyond allocated buffers, corrupting adjacent memory. Possible outcomes include denial of service, sensitive data leakage and, most critically, remote code execution.
Node2Shell: Imperva proves RCE on official Node.js builds
Researchers at Imperva successfully weaponized the flaw on unmodified Node.js 24.22.0 (Linux arm64). They named the technique Node2Shell. The exploit works by feeding specially crafted Brotli data to functions such as zlib.brotliDecompress. Although reliability is not 100 percent and multiple attempts may be required, the attack succeeds on a stock release without any debugging symbols or weakened mitigations.
The same payload is blocked on the patched Node.js 24.22.1 release, confirming that the fix is effective. Earlier public proofs-of-concept only worked on deliberately weakened test builds; this demonstration on production binaries significantly raises the risk profile.
Affected software and remediation guidance
- Node.js 22.x below 22.23.4, 24.x below 24.22.1, 26.x below 26.12.1
- Python brotli and brotlicffi packages (all versions)
- Bun all releases that include the built-in Brotli decoder
- Envoy any deployment with Brotli decompression filters enabled
Administrators should immediately upgrade Node.js to the fixed releases listed above and restart all processes. Python users must wait for updated brotli packages or implement temporary input-size validation. Bun and Envoy users should monitor official channels for patches and consider disabling Brotli decompression until fixes are available.
Supply-chain lessons
The incident once again illustrates how a single upstream library can expose an entire ecosystem. Similar patterns were observed with Log4Shell and the xz-utils backdoor. Organizations are advised to maintain software bill-of-materials (SBOM) records, enable automated dependency updates via tools such as Dependabot, and apply defense-in-depth controls around any decompression routines.


