Blog Cybersecurity
Brotli Flaw Now Exploited: Check Python, .NET, and Firewalls
On this page· 7 sections
The Brotli flaw tracked as CVE-2026-111497 is now being exploited. CISA added it to its Known Exploited Vulnerabilities (KEV) catalog on 27 October 2026, a day after the security firm ELLIO recorded attack traffic. Because the bug sits in Google’s Brotli compression library, Python, .NET, Envoy, and PAN-OS firewalls all need a check.
Where things stand after the KEV listing
When Merakit covered the Brotli flaw in Node.js on 24 October, there were no reports of exploitation in the wild. That changed within two days. According to the independent tracker broccoli2shell.com, ELLIO reported exploit traffic built on the public proof of concept on 26 October. The next day, CISA announced that it had added the flaw to the KEV catalog based on evidence of active exploitation.
The KEV catalog lists vulnerabilities that attackers are known to use. US federal civilian agencies must fix them by a deadline, which Tenable and broccoli2shell.com put at 10 November 2026. That rule does not bind organizations in Indonesia, but many security teams use the same catalog to decide which patches go first.
How well the attacks work is still debated. Tenable notes that ELLIO saw an attempt against Node.js 24.22.0 on x86-64, which Tenable itself has not confirmed. ELLIO’s data, as cited by Tenable, shows that most of 400 lab attempts only crashed the worker process, and an attack request captured in the wild produced no shell in 50 lab runs. A crashed process still means a service outage.

The bug lives in the Brotli library
Brotli is a compression format widely used to shrink web pages and API responses. The defect is in the C version of the Brotli decoder, the part that unpacks compressed data. According to the GitHub Advisory, deliberately malformed data can trigger an out-of-bounds memory write without authentication. The results range from a crashed process and leaked memory to possible code execution.
Google, as the CVE issuer, rates it 9.2 (Critical) under CVSS 4.0. Red Hat rates it lower, Important with a CVSS 3.1 score of 8.1, because it considers a reliable attack hard to achieve. Red Hat adds that built-in system protections such as ASLR and SELinux make code execution harder but do not prevent crashes.
Library versions 1.0.3 through 1.2.0 are affected. Fixes are available in 1.0.10, 1.1.1, and 1.2.1. Tenable points out that the fix had been in the Brotli source code since 27 February 2026, yet the releases only shipped on 21 October, alongside the Node.js announcement.
Because Brotli is embedded in so much software, the reach is wide. Christiaan Beek of Rapid7 told CyberScoop, “Attackers don’t care about CVSS scores.” In his view, priorities should follow what attackers can actually compromise. In the same report, Wiz said 91% of cloud environments have resources vulnerable to the flaw.
Software that is also affected
Every program that carries its own copy of Brotli needs its own update. The list below covers what matters most for IT teams, based on Tenable, broccoli2shell.com, and vendor advisories.

Python
The pip package Brotli from 1.0.3 through 1.2.0 is affected and fixed in 1.2.1, while brotlicffi is fixed in 1.2.1.0. Both reached PyPI on 22 and 23 October. The risk is easy to miss: popular HTTP libraries such as requests, urllib3, httpx, and aiohttp can decode Brotli responses automatically when those packages are installed. Scrapers, crawlers, and analytics pipelines that pull data from outside sites are among the easiest paths for an attacker to reach.
.NET
Microsoft released .NET 8.0.33, 9.0.22, and 10.0.14 on 25 October. According to Tenable, an application is not exposed simply because the package is installed, since request decompression in ASP.NET Core and response decompression in HttpClient are off by default. .NET Framework is not affected. NativeAOT and self-contained applications need to be rebuilt because they carry their own copy of the library.
Envoy, Istio, and Bun
Envoy is fixed in 1.36.12, 1.37.8, 1.38.6, 1.39.3, and 1.40.0, and Istio in 1.29.9, 1.30.6, and 1.31.2. Both are exposed only when the Brotli decompression filter is enabled. Bun is fixed in version 1.4.4.
PHP on Windows
The official PHP builds for Windows bundle Brotli. PHP released builds 8.2.35-1, 8.3.36-1, 8.4.27-1, and 8.5.12-1 on 26 October. The PHP brotli extension is fixed in version 0.21.1.
Palo Alto Networks firewalls
Palo Alto Networks says PAN-OS 11.2, 12.1, and 12.2 are affected only on PA-Series and VM-Series firewalls that have Brotli inspection turned on together with TLS decryption. The feature is off by default. The management interface is not affected, and neither are PAN-OS 11.1 and 10.2. Hotfixes are rolling out in stages, such as 12.2.4-h1 for the 12.2 line. As of 28 October, Palo Alto said it was not aware of any malicious exploitation of its products.
Linux system libraries
Many programs rely on the operating system’s own Brotli library. Red Hat notes that Node.js on RHEL 10 and .NET 9 and later on RHEL use the system library, so the distribution’s brotli package has to be updated. Sysdig reports that Debian 12 and 13 already ship a fixed package. Running programs only pick up the new library after a restart.
Some projects have not yet released a fix. As of 28 October, broccoli2shell.com listed DuckDB and the Apache Arrow build that bundles Brotli 1.0.9 as still affected.
What this means for your organization
System administrators at banks, fintech firms, online stores, and government agencies often run several of these components at once: an Envoy-based API gateway, .NET services, and Python scripts for reporting. Last week’s Node.js update did not cover all of them. These steps can be taken now.
- Find every copy of Brotli on servers and images. Run
pip show Brotli brotlicffiin Python environments,dpkg -l | grep -i brotlion Debian or Ubuntu,rpm -qa | grep -i brotlion RHEL, andapk info -v | grep -i brotlion Alpine. To see which running processes have the decoder loaded, broccoli2shell.com suggestssudo grep -l brotlidec /proc/*/maps. Run the same checks inside container images. - Update packages according to the list above. For Python, install
Brotli1.2.1 orbrotlicffi1.2.1.0. For the system library, install the package from your distribution. - Restart processes and scheduled jobs. Tenable stresses that patching does not reach code that is already running. Rebuild container images and redeploy the applications.
- Add a temporary block if patching is delayed. Reject requests with a
Content-Encoding: brheader at the proxy, load balancer, or WAF. For Python, Tenable and broccoli2shell.com recommend removingBrotliandbrotlicffiuntil the fixed versions are in place. PAN-OS users can turn off Brotli inspection withset system setting brotli-encoding disable. - Watch for signs of attack. Sysdig advises monitoring for processes that crash and then launch another program, as well as unusual outbound connections from web servers.

Removing br from the Accept-Encoding header does not protect the outbound path. According to broccoli2shell.com, it helps little, and the only complete protection is upgrading the runtime or library. Teams that run many data pipelines can add package version checks to their regular release process, for example while reworking workflows with our data analytics services. For an inventory of internet-facing systems and testing after the update, our cybersecurity services can help.
Frequently asked questions
Am I safe if I have already updated Node.js?
For Node.js, yes, as long as you run 22.23.4, 24.22.1, or 26.12.1 and the processes have been restarted. The same server may still hold other copies of Brotli in Python packages, .NET applications, or system libraries. Each of them needs a check.
Are firewalls and network devices affected?
Some are. Palo Alto Networks confirmed that PAN-OS is affected when Brotli inspection and TLS decryption are both enabled. For devices from other vendors, check each vendor’s official advisory by searching for CVE-2026-111497.
How likely is an attack to succeed?
ELLIO’s tests show the exploit is not yet reliable and more often crashes the process. CISA still added the flaw to the KEV catalog because there is evidence of active exploitation. A process that crashes repeatedly is enough to disrupt a service, so the update should still come first.
Closing
The Brotli flaw shows how one small library can spread across runtimes, language packages, proxies, and firewalls. Start with a list of every copy of Brotli across your servers and images, then update and restart the affected ones. If your team needs support mapping and testing the updates, Merakit is ready to talk.
Sources
- CISA: CISA Adds Two Known Exploited Vulnerabilities to Catalog (27 October 2026)
- Tenable: Brotli2Shell, Frequently Asked Questions for Google Brotli Decoder (CVE-2026-111497) (26 October 2026, updated 28 October 2026)
- GitHub Advisory GHSA-9v8h-qqgm-4m35 (22 October 2026)
- Palo Alto Networks: CVE-2026-111497 Portfolio Status (26 October 2026, updated 28 October 2026)
- Red Hat: CVE-2026-111497
- CyberScoop: Experts temper emergency-level alarms over critical Brotli defect (26 October 2026)
- Sysdig: Node2Shell (CVE-2026-111497), Detecting the Node.js Brotli RCE (24 October 2026, updated 28 October 2026)
- broccoli2shell.com: Brotli decoder RCE (CVE-2026-111497) (updated 28 October 2026)