Brotli flaw reaches Bun, Python and Envoy beyond Node.js

A memory-corruption flaw in Google's Brotli decoder affects more than Node.js: Bun, Python's Brotli packages and Envoy proxies are also exposed under particular conditions. Tracked as CVE-2026-111497, the issue can lead to crashes, memory leaks or attacker-controlled code execution. Code execution has been demonstrated on one unpatched Node.js build, but no real-world attacks have been reported. Node.js and Google shipped fixes on October 21, with additional products following separately.

The important dividing line is whether a program decodes Brotli data controlled by someone else. In Node.js and Bun, that can happen when built-in fetch() processes a Brotli-compressed response, or when request handling through software such as Express 5 and body-parser 2 unpacks a Brotli upload. A plain Node.js HTTP server does not decode request bodies by itself. Envoy and Istio are affected only when Brotli decompression is enabled, such as through an Envoy filter.

Python deployments need a different check. The Brotli or brotlicffi package being installed can expose an application because HTTP clients including requests, urllib3, httpx and aiohttp may decode Brotli responses automatically. That means an application may be exposed without importing Brotli directly. The disclosure also warns that a client accepting compressed input can be attacked by a malicious server, while a server accepting compressed input can be attacked by a malicious client.

Administrators should update to a fixed version, restart the service and rebuild container images so running processes no longer retain the old decoder. If an update is not yet possible, the supported stopgaps are to reject incoming Brotli requests before a proxy or parser decodes them, disable automatic Brotli decoding in HTTP clients, and reject Brotli responses before decoding. For Python, removing the Brotli and brotlicffi packages allows clients to fall back to gzip and deflate. Simply removing br from Accept-Encoding is not sufficient, and no Node.js workaround has been published.

The issue also creates a dependency-management trap. The CVE record names Google's Brotli repository rather than the Python packages, and GitHub's advisory initially listed no affected package for Dependabot to read. Separate advisories for the two Python packages were added on October 23, so installed versions should be checked manually as well. Debian fixed its Brotli package for Debian 13 on October 23, while Amazon Linux 2023 still listed its Brotli and Node.js 24 packages as pending a fix on October 22.

Sources

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *