Vol. I · No. 1Edition: MorningEst. 2026AboutSearchRSS

The Sand Paper

Finding grains of sand with grains of sand.
A Journal of Intelligence Transfer
Lead Story · Industry

OpenAI’s Brotli Bug Reaches Past Node: Bun, Python and Envoy Need Fixes

Agents testing OpenAI’s own defenses found the flaw; Google rates it 9.2 of 10, and no attacks are reported.

One decoder, many copies. Each program that ships Brotli has to take the fix on its own.

OpenAI says that while its agent teams red-teamed the environments it trains frontier models in, they also found a vulnerability in Brotli, a compression library built into Node.js, Bun, Envoy and much else. It allows unauthenticated remote code execution, OpenAI writes. An unpatched server that accepts compressed input could be taken over by a malicious client, and an unpatched client that accepts compressed input could be taken over by a malicious server.

The flaw, CVE-2026-111497, is an out-of-bounds write in Google’s C decoder. The OSV entry for Python’s Brotli package describes a crafted stream that makes the decoder carry on with corrupted state and write past its buffer. Node.js shipped its fix on Oct. 21 and credits Khai Tran and Sylvie Mayer of OpenAI’s Codex Security. Other projects have followed one by one since.

SoftwareFixed inExposed when
Google Brotli (C)1.0.10, 1.1.1, 1.2.1Code decodes untrusted Brotli
Node.js22.23.4, 24.22.1, 26.12.1fetch() of a br response, or Express or body-parser br bodies
Bun1.4.4fetch() of a br response, or node:zlib
Envoy1.40.0, 1.39.3, 1.38.6, 1.37.8, 1.36.12Only with the Brotli decompressor configured
Istio1.31.2, 1.30.6, 1.29.9Only with Brotli decompression enabled
Python Brotli1.2.1Installed, and an HTTP client decodes br
Python brotlicffi1.2.1.0Installed, and an HTTP client decodes br
Source: The Hacker News, Oct. 24, 2026.

Python is the quiet case. With Brotli or brotlicffi installed, requests, urllib3, httpx and aiohttp decode Brotli responses on their own, so an app can be exposed without importing Brotli itself, The Hacker News explains. Dependency scanners may miss it: the CVE record names Google’s repository, and the Python advisories were only added on Oct. 23.

Imperva’s red team ran attacker-supplied code on an unmodified Node.js 24.22.0 build for Linux on ARM64, as a fetched response and as an Express request body. The exploit took several tries and has not been released. No attacks in the wild are reported: CISA’s Oct. 23 assessment records exploitation as “none.” Google rates the flaw 9.2 on CVSS 4.0; Red Hat rates it 8.1.

The fix has an odd history. OpenAI says the root cause was fixed in Brotli’s source code in February, but nobody knew then that it was a security flaw, and no newer release of Brotli existed. Reuters reports OpenAI found it during the same exercise that let it resume frontier training on Oct. 1.

What to do: update to a fixed version, then restart services and rebuild container images, since a running process keeps the old decoder. Where you cannot update yet, OpenAI and the security firm Aikido advise rejecting requests with Content-Encoding: br and turning off automatic Brotli decoding in HTTP clients, The Hacker News reports. @levelsio’s reaction: “Okay now it’s Brotli’s turn.”

Sources

  1. @levelsio on X · Oct 23, 6:08 PM PT
  2. @OpenAI on X · Oct 23, 3:55 PM PT
  3. The Hacker News · thehackernews.com
  4. Node.js · nodejs.org
  5. OSV: PYSEC-2026-4322 · osv.dev
  6. Reuters via Investing.com · investing.com
Back to front pageMore in Lead Story