HTTP2Shell: Brotli flaw widens from Node.js to Python, Envoy and Istio

The Brotli decoder flaw first publicised as Node2Shell reaches far beyond Node.js, researchers warn, with Python packages, proxy software and service meshes all affected by the same underlying bug, now also called HTTP2Shell and Broccoli2Shell.
One bug, many stacks
The flaw, tracked as CVE-2026-111497 and rated 9.2 under CVSS 4.0, is an out-of-bounds write in the Google Brotli C decoder, triggered by malformed compressed input. It was fixed in Node.js 22.23.4, 24.22.1 and 26.12.1, and in Bun 1.4.4, but the same decoder ships inside many other stacks.
In Python, the Brotli and brotlicffi packages are affected, fixed in 1.2.1 and 1.2.1.0 respectively, and code does not even need to import them directly: HTTP clients such as urllib3, requests, httpx and aiohttp decode Brotli responses automatically when the packages are installed. Envoy is fixed in 1.40.0, 1.39.3, 1.38.6 and 1.37.8, and Istio in 1.29.9, 1.30.6 and 1.31.2.
What the risk actually is
An application is exposed when it decodes attacker-controlled Brotli data, whether as an inbound request body or as a response fetched from an untrusted server, for example through webhooks, URL previews or crawlers. As of 24 October, no attacks in the wild had been confirmed and the flaw was not in CISA's exploited-vulnerabilities catalogue, but public proof-of-concept code exists and researchers reproduced code execution against an official Node.js build in the lab.
The fix is the same everywhere: upgrade the runtime or library, rebuild container images that bundle the old decoder, and restart affected services. A version check alone is not enough where the decoder is vendored into other products.
Sources: Aikido, Node2Shell evolves to HTTP2Shell; Strobes, HTTP2Shell: Brotli RCE in Node.js and Python; Brandefense, CVE-2026-111497 explained, summarising Wiz Research, 25 October 2026.