Brotli CVE-2026-111497: How the Decoder Flaw Hitting Node.js, Bun, Python, Envoy and Istio Works, and Why It Took Eight Months to Ship

By Carlos Montiel | Enterprise AI Specialist
Leer en español →
Published: 2026-10-25 | By: Carlos Montiel | Reading time: ~5 minutes
Brotli CVE-2026-111497: How the Decoder Flaw Hitting Node.js, Bun, Python, Envoy and Istio Works, and Why It Took Eight Months to Ship

Brotli is the compression your browser, your CDN and your Node.js runtime use without anyone thinking about it. On October 21, an out-of-bounds write in its decoder was fixed that, with crafted data, can end in code execution. What matters to anyone running services isn't just the bug, but how many different copies of the decoder live in your stack.

What CVE-2026-111497 Is

It's a memory-corruption flaw in Brotli's C decoder: a crafted compressed input can write past the end of a buffer. The possible outcomes are a crash, a memory leak or attacker-controlled code execution. It was disclosed on October 21, 2026, when Node.js and Google shipped fixes and other products followed. According to The Hacker News, the report came from OpenAI's Codex Security team; Node.js credits Khai Tran and Sylvie Mayer, and maintainers Matteo Collina and Antoine du Hamel for the fix.

Watch the severity: Google rates it 9.2 (critical, CVSS 4.0); Node.js rates it high and Red Hat 8.1 (important). Some outlets also cite identifiers that differ from Node.js's official advisory, so check the CVE against the vendor advisory before using it in a ticket.

Who Is Affected and Which Version Fixes It

Brotli (C library) 1.0.3 to 1.2.0 → 1.0.10, 1.1.1, 1.2.1 Node.js 22.x, 24.x, 26.x → 22.23.4, 24.22.1, 26.12.1 20.x and earlier: end of life, no patch Bun 1.4.3 and earlier → 1.4.4 Envoy 1.36–1.39 → 1.36.12, 1.37.8, 1.38.6, 1.39.3, 1.40.0 Istio 1.29–1.31 → 1.29.9, 1.30.6, 1.31.2 Python Brotli/brotlicffi 1.2.0 and earlier → 1.2.1 / 1.2.1.0

Envoy and Istio are vulnerable only if the Brotli decompressor is configured or enabled. The October 21 Node.js release fixed ten flaws in total, four of them high severity, and offered no alternative mitigation: updating is the only way out.

How It Gets to Code Execution: Exposure Conditions

The decoder is only dangerous when it processes data you don't control. In Node.js and Bun that happens when you read a fetch() response with Content-Encoding: br, or when you parse Brotli request bodies in Express 5 or body-parser 2; a basic Node HTTP server doesn't decode bodies on its own. In Python, simply having Brotli or brotlicffi installed is enough: clients such as requests, urllib3, httpx and aiohttp decode Brotli automatically. Imperva Red Team, which calls its work Node2Shell, demonstrated code execution on an unmodified Node.js 24.22.0 on Linux ARM64; the exploit took several attempts, hasn't been published and wasn't tested on other builds. As of October 23, CISA assessed it as having no known exploitation, and Red Hat said there is no reliable public proof of concept.

Why It Took Eight Months: The Problem of Copies

The fix was committed to Brotli's source code on February 27, 2026, but no new release included it until October 21. OpenAI maintained that the root cause "had been fixed in Brotli's source code since February." Each runtime (Node.js, Bun, Python packages, Envoy) bundles its own copy, so a fix in the repository protects no one until each project pulls it in and ships it. By the end of this week, Debian had already fixed its package in Debian 13, while Amazon Linux 2023 still listed it as pending on October 22. GitHub didn't list an affected package in its advisory database, so Dependabot may not alert you about the Python packages.

Mitigations If You Can't Update Today

What It Means for a Company Running AI Services

Takeaway for your company: your AI agents and pipelines fetch() many external URLs, exactly the condition that triggers this bug. Inventory which runtimes (Node, Bun, Python) run in your AI services and which Brotli version they bundle, prioritize the ones that consume third-party content, and don't assume your dependency scanner will flag it. The case also illustrates a trend: having an AI tool report the flaw shortens the time between discovery and disclosure, but not the time your update chain takes.
Carlos Montiel
Enterprise AI Solutions Architect
Specialist in LLMs, Agents, and Orchestration
guatemalia.com/#contacto · info@guatemalia.com

Need to implement AI in your company?

Carlos Montiel is an enterprise AI solutions architect. He implements LLMs, Agents, RAG, and orchestrators for companies across Guatemala and Latin America. Reach out for a consultation.

Contact Carlos Montiel

info@guatemalia.com