Flaw in Brotli compression reaches into firms' Python software
The vulnerability known as Node2Shell, CVE-2026-111497, sits in Google's Brotli library and extends beyond Node.js into widely used Python packages.
A bug in Google's Brotli decoder, rated critical at 9.2 out of 10, lets attackers corrupt memory with crafted compressed data and, at worst, run code. Besides Node.js, it affects the Python packages brotli and brotlicffi, through which common libraries such as urllib3, requests, httpx and aiohttp decompress responses.
What happened
Brotli is a compression format web servers use to deliver data in smaller form. Software often decompresses such data automatically, without developers having deliberately built that in. Node.js published security updates on 21 October; the flaw itself was registered on 22 October. It was found by two researchers at OpenAI Codex Security, an AI-assisted auditing tool. Brotli versions 1.0.3 to 1.2.0 are affected. For Python, if brotli or brotlicffi is installed, HTTP libraries decompress Brotli responses even when the application never calls the package directly. That covers data retrieval, interfaces to payment and banking services, web scrapers and internal tools. Code execution has been demonstrated publicly for Node.js, but not so far for the Python packages. No attacks in the wild had been reported by 23 October, and the flaw is not in the catalogue of actively exploited vulnerabilities kept by CISA, America's cyber-security agency.
What follows
Assessment: after the previous week's PHP flaws, the case shows a pattern. Critical bugs increasingly sit in components deep beneath the application itself, and AI tools find them faster. That helps defenders but also shortens the time between disclosure and a possible attack. For companies, maintaining only their own applications means missing risks in dependencies. The protection is updating: Node.js to 22.23.4, 24.22.1 or 26.12.1; the Python packages brotli to 1.2.1 and brotlicffi to 1.2.1.0; Brotli itself to 1.0.10, 1.1.1 or 1.2.1. Older Node.js lines such as 20.x receive no fix. A link to JSON processing mentioned in online forums is not substantiated. According to Cycode, the Python installer pip is not affected because Brotli is disabled in it.
What changes in practice
- IT departments
- Check Node.js, the Python packages brotli and brotlicffi and any bundled Brotli versions, and update to the fixed releases.
- Firms running Python services
- Applications that never use Brotli directly may still be exposed if the package is installed and HTTP libraries decompress responses automatically.
- Users
- No action is known for private users. The risk lies with operators of servers and applications.
What to watch
- Whether the flaw is added to CISA's catalogue of actively exploited vulnerabilities
- Updates from Linux distributions and cloud providers for bundled Brotli versions
- Further findings by AI-assisted auditing tools in widely used libraries
Sources
- Node.js: October 2026 Security Releases (21.10.2026)
- GitHub Advisory GHSA-9v8h-qqgm-4m35 (CVE-2026-111497)
- Aikido: Python packages vulnerable to Node2Shell Brotli CVE-2026-111497
- Cycode: node2shell (CVE-2026-111497), what to patch