The Brotli bug we flagged is now under attack. Finish the Node.js and Python updates this week

By George Bailey   Published: 10/28/26   4 min read

We flagged the Brotli decoder bug on Monday and Microsoft’s .NET fixes on Tuesday. At that point there were proofs of concept and no attacks. That changed on Monday afternoon, when threat intelligence firm ELLIO recorded a real exploit attempt, and on Tuesday CISA added the flaw to its exploited list.

Get the CyberExperts Daily Brief: the day's top security news in 5 minutes. Free.

The first attempt failed in ELLIO’s own test. The sender is a mass-exploitation operator, so plan on the next one working.

The first in-the-wild Brotli exploit was built for one exact build, Node.js 24.22.0 on x86-64. If that is in your Dockerfile, change the line today.

Exploit traffic reached sensors, and CISA listed Brotli

At 15:08 UTC on October 26, ELLIO’s sensors received a single Brotli-compressed request body of about 23 MB aimed at Node.js v24.22.0 on x86-64. ELLIO says the delivery copied public proof-of-concept code byte for byte, while the final stage was an original construction. In ELLIO’s lab that chain crashed the target but scored no shells in 50 attempts, while the public chain did get a shell on the same build.

The traffic came from 94.154.43.7, an address ELLIO has seen running PHP2Shell exploits and probing Palo Alto GlobalProtect, FortiOS SSL VPN and Kubernetes APIs. On October 27 CISA added CVE-2026-111497 to the Known Exploited Vulnerabilities catalog with a federal due date of November 10.

Node.js 24.22.0 servers were the first target

Exposure depends on whether anything hands attacker-supplied Brotli data to the decoder. ELLIO lists three paths in Node.js: request bodies sent with Content-Encoding: br to Express 5 body parsers, body-parser 2 or Koa body parsers; responses that built-in fetch(), axios or got decode automatically; and direct node:zlib Brotli calls. Python clients such as requests, httpx and aiohttp decode Brotli responses as soon as the Brotli package is installed.

Each Node.js build needs its own memory offset, which is why the attempt targeted one version. ELLIO warns that a version shown in a banner, header, lockfile or container tag makes picking targets easy, and that a crash can also write other visitors’ tokens into a core dump.

Finish the Node.js, Python and image updates before November 10

Forward this

For whoever runs our Node.js or Python services: the Brotli compression bug we flagged this week is now being exploited, and CISA has listed it with a November 10 deadline for federal agencies. Can we confirm every Node.js service is on 22.23.4, 24.22.1 or 26.12.1, with images rebuilt and restarted, by the end of the week?

Details

Hunt / verify

Source: ELLIO: exploit traffic and fixed versions; CISA KEV addition

Sources

George Bailey

George Bailey is the byline of the CyberExperts editorial desk, the team behind the CyberExperts Daily Brief. The desk covers vulnerabilities, breaches and security news from vendor advisories, CISA alerts and other primary sources, and links those sources in every story. Questions or corrections: [email protected].