Brotli CVE-2026-111497: exploited decoder flaw reaches Node.js, Python, .NET and more
nodejs.org Live Checked 5 November 2026 brotli-cve-2026-111497
Summary
- Google's Brotli decoder has an out-of-bounds write when handling crafted data. Attackers can use it to crash a program, and in some setups to run code. The CVE record covers Brotli 1.0.3 through 1.2.0, scores it 9.2 on CVSS 4.0, and gives fixes in 1.2.1, 1.1.1 and 1.0.10.
- Node.js shipped its fix on 21 October 2026. The bug is in the shared library, so other software is affected too.
- CISA added it to the Known Exploited Vulnerabilities (KEV) catalog on 27 October 2026.
Exposure
The flaw matters only when a program decodes Brotli data an attacker can control. Common routes:
- Node.js: apps that call
node:zlibBrotli functions on supplied data. Express 5 and body-parser 2 decodeContent-Encoding: brrequest bodies.fetch()decodes responses, so an attacker's server can reach it. Barenode:httpdoes not decode by itself. - Python: clients decode responses once a Brotli package is installed.
- Proxies and appliances: only where Brotli decoding is configured, as listed below.
Affected and fixed versions from primary sources:
- Node.js: fixed in 22.23.4, 24.22.1 and 26.12.1. Node.js lists no workaround. ELLIO reports that end-of-life 20.x, 23.x and 25.x are affected with no fix.
- Python
brotli: 1.0.3 up to 1.2.1, fixed in 1.2.1.brotlicffi: 1.0.3 up to 1.2.1.0, fixed in 1.2.1.0. - .NET 8 before 8.0.33 (SDK 8.0.133, 8.0.427), .NET 9 before 9.0.22 (SDK 9.0.123, 9.0.320), .NET 10 before 10.0.14 (SDK 10.0.114, 10.0.403), and 11 previews before 11.0.0-rc.3.26522.148. Microsoft says it is not on by default in ASP.NET Core or HttpClient. .NET Framework is not affected.
- Envoy 1.18.0 up to 1.40.0 with the Brotli decompressor configured. Fixed in 1.36.12, 1.37.8, 1.38.6, 1.39.3 and 1.40.0.
- PAN-OS with both Brotli inspection and TLS decryption on: 12.2 before 12.2.4-h1, 12.1 before 12.1.4-h13, 12.1.7-h11 or 12.1.10-h3, and 11.2 before 11.2.4-h23, 11.2.7-h23, 11.2.10-h17, 11.2.13-h4 or 11.2.16-h1. PAN-OS 11.1, 10.2 and Panorama are not affected.
- PHP on Windows: rebuilds 8.5.12-1, 8.4.27-1, 8.3.36-1 and 8.2.35-1 carry Brotli 1.2.1. The route is cURL's automatic decompression, which is off by default.
- Bun: 1.4.4 lists Brotli among its security fixes. Aikido and ELLIO name versions before 1.4.4 as affected.
- Git: can be reached through
git-remote-httpswhen libcurl has Brotli, per an oss-security report.
Linux packages:
- Debian
brotli: 1.0.9-2+deb12u1, 1.1.0-2+deb13u1, and 1.2.0-4.1 in forky and sid. Debian'snodejsuses the system library. - Ubuntu
brotli: 26.10 1.2.0-4ubuntu0.1, 26.04 1.2.0-3ubuntu0.1, 24.04 1.1.0-2ubuntu0.1, 22.04 1.0.9-2ubuntu0.1. - Red Hat: Important, RHEL 7 to 10. Update
libbrotliwhere Node.js and .NET use the system library.
Others name more software, including Istio and PowerShell (Canadian Cyber Centre) and Chromium, Firefox, ClickHouse, DuckDB and ngx_brotli (independent list at broccoli2shell.com). We did not confirm these from each vendor, so check with them.
Exploitation: established by CISA's KEV listing of 27 October 2026, with an exploitation rating of active. The entry gives no attack details, and its ransomware field says unknown. CISA's due date for US federal agencies is 10 November. The only detailed public account we found is from ELLIO, a threat intelligence company. Its sensors saw an attack request on 26 October at 15:08 UTC aimed at Node.js 24.22.0 on x86-64. ELLIO's tests found that attacker's chain failed in all 50 tries, and that its own version ran code on stock builds, including Express 5.3.0 and Koa 3. The Node.js and Red Hat advisories we read make no statement about attacks. Palo Alto says it knows of no malicious use against PAN-OS.
Actions
- Find your exposure. Run
node --versionandnpm ls express body-parser. Check lockfiles for Pythonbrotliandbrotlicffi, Bun, .NET, Envoy and appliances. - Do not rely on
process.versions.brotli. ELLIO reports it shows 1.2.0 on patched and vulnerable Node.js builds alike. Check the Node.js version instead. - Update to a fixed version above, or your vendor's fixed package. Later Node.js releases, 24.22.2 and 26.13.0, also exist. Move off end-of-life Node.js lines.
- Rebuild what bundles the decoder, then restart. This means container images, .NET self-contained and NativeAOT apps, and Bun compiled executables. Update lockfiles too.
- Update the system library where the runtime uses it, then restart every process using it.
- If you cannot update, stop decoding untrusted Brotli. Red Hat suggests stripping or rejecting
Content-Encoding: brfrom untrusted clients and avoidingzlib.brotliDecompresson untrusted data. - On affected PAN-OS, run
show system setting brotlito see the state, andset system setting brotli-encoding disableto turn it off until you can upgrade. - Check for attacks. Failed attempts crash Node.js workers, so look for repeated crashes and large Brotli bodies. ELLIO reports that Python, PHP and Ruby decoders may hang with no output instead of crashing. Core dumps may hold other users' secrets, so protect or remove them.
- Confirm the fix. ELLIO reports a patched service answers its test input with a 400 and
ERR__ERROR_FORMAT_BLOCK_SWITCH.
Sources
- CVE-2026-111497: CVE record from Google. Affected and fixed Brotli versions, score, CISA's rating.
- Google Brotli v1.2.1, v1.1.1 and v1.0.10: vendor releases. Upstream fixes.
- Node.js October 2026 security releases: vendor advisory. Severity, fixed versions, conditions.
- Node.js 24 changelog and 26 changelog: vendor release notes. The fix in each line, and the later 24.22.2 and 26.13.0 releases.
- CISA KEV feed, version 2026.11.04: CISA KEV. Listing date, due date, ransomware field.
- ELLIO, 25 and 26 October 2026: research. Observed attack traffic, lab results, Python route, Bun rebuilds, crash and hang behavior, version string, core dumps.
- GHSA-9v8h-qqgm-4m35: advisory database. Python package versions.
- .NET announcement 494: vendor advisory. .NET versions, defaults, rebuild needs.
- Envoy GHSA-3wvj-j6qm-62mr: vendor advisory. Envoy versions and condition.
- Palo Alto CVE-2026-111497: vendor advisory. PAN-OS versions, conditions, commands, no known malicious use.
- Red Hat RHSB-2026-015: vendor advisory. Products,
libbrotli, stopgaps. - Debian tracker and Ubuntu CVE page: vendor status. Fixed packages.
- PHP for Windows notice: vendor notice, 26 October. Rebuilt Windows packages and the cURL route.
- Bun 1.4.4: vendor release notes. Brotli listed among security fixes.
- Aikido: research. Express, body-parser and
fetch()routes, affected Bun versions. - oss-security, 26 October 2026: mailing list. Git through libcurl.
- Canadian Cyber Centre AL26-027: government alert. Wider product list, monitoring advice.
- broccoli2shell.com: independent research. Wider list of software, not vendor confirmed.
Replies 0
No replies yet.