Node2Shell Brotli Flaw Affects Python Packages

Summary
CVE-2026-111497, an out-of-bounds write in Brotli’s C decoder, affects PyPI Brotli and brotlicffi releases before 1.2.1 and 1.2.1.0. No in-the-wild exploitation is reported; upgrade and check for bundled copies.
Key points
- CVE-2026-111497 is an out-of-bounds write in Google’s Brotli C decoder, affecting upstream versions 1.0.3 through 1.2.0; the article reports a CVSS v4.0 score of 9.2.
- Affected PyPI releases are Brotli 1.2.0 and earlier and brotlicffi 1.2.0.x and earlier. Fixed versions are Brotli 1.2.1 and brotlicffi 1.2.1.0.
- urllib3, requests, httpx, and aiohttp can automatically decode Brotli responses when a suitable backend is installed; applications may also expose the decoder when decompressing inbound Brotli request bodies.
- No in-the-wild exploitation has been reported as of October 26, 2026. Researchers demonstrated RCE against Node.js, but the article says public research has not demonstrated memory corruption or code execution in the Python extensions.
- The article reports that Apache Arrow, including pyarrow, bundles Brotli 1.0.9 and had no fix as of October 26; cited community testing found a 534-byte input could send pyarrow into an endless loop.
- The article recommends upgrading affected packages, rebuilding images and bundled components, and restarting long-running processes so patched extensions load. Embedded Brotli copies require separate checks and updates.
Article Details
- Vulnerability Types
- Out-of-bounds write
- Severity
- 9.2 Critical (CVSS v4.0); 8.1 (CVSS v3.1 in some advisories)
- Affected Versions
- Brotli C decoder 1.0.3 through 1.2.0
- Brotli (PyPI) 1.2.0 and earlier
- brotlicffi 1.2.0.x and earlier
- Apache Arrow bundled Brotli 1.0.9
- Exploitation Status
- not_reported
- Exploit Availability
- none_reported
- Patch Status
- available
- Workarounds
- Uninstall Brotli and brotlicffi to remove the common HTTP-client decoding path.
- Reject requests with Content-Encoding: br before decoding.
- Stop advertising br and reject Brotli responses before decoding.
CVE
People
Vendors
Products
aiohttpBoth compile Google’s vulnerable Brotli C decoder, and popular HTTP clients such as requests, httpx and aiohttp use them to decompress responses automatically once they are installed.Apache ArrowApache Arrow pins a bundled Brotli 1.0.9, and its tracking issue was still open on October 26, 2026.BrotliThe Node2Shell Brotli flaw (CVE-2026-111497), disclosed alongside Node.js fixes on October 21, 2026, also reaches Python through the PyPI Brotli and brotlicffi packages.brotlicffiThe Node2Shell Brotli flaw (CVE-2026-111497), disclosed alongside Node.js fixes on October 21, 2026, also reaches Python through the PyPI Brotli and brotlicffi packages.httpxBoth compile Google’s vulnerable Brotli C decoder, and popular HTTP clients such as requests, httpx and aiohttp use them to decompress responses automatically once they are installed.Node.jsThe Node2Shell Brotli flaw (CVE-2026-111497), disclosed alongside Node.js fixes on October 21, 2026, also reaches Python through the PyPI Brotli and brotlicffi packages.requestsBoth compile Google’s vulnerable Brotli C decoder, and popular HTTP clients such as requests, httpx and aiohttp use them to decompress responses automatically once they are installed.urllib3Silent Path: urllib3, requests, httpx and aiohttp decode Brotli automatically when a backend is installed, so applications can be exposed without calling Brotli directly
