CVE-2026-111497: Critical Brotli Decoder Vulnerability
Active exploitation confirmed in CISA KEV.
Active exploitation confirmed in the wild. CISA added this to the KEV catalog on 2026-10-27. Federal agencies must patch by 2026-11-10.
TL;DR - CVE-2026-111497 is a CVSS 9.8 Brotli decoder memory-corruption vulnerability affecting versions 1.0.3 through 1.2.0. - Patch upstream Brotli to 1.0.10, 1.1.1, or 1.2.1, and update products that bundle it. - CISA lists it as known exploited, with remediation due by November 10, 2026. - Review embedded Brotli dependencies in Node.js, Python packages, Envoy, Istio, .NET-related components,
brotli4j, and operating-system packages.
CVE-2026-111497 is a critical Google Brotli decoder vulnerability affecting Brotli versions 1.0.3 through 1.2.0. The flaw can cause memory corruption when a vulnerable decoder processes specially crafted compressed data. Because Brotli is commonly embedded in web servers, runtimes, proxies, and application libraries, organizations should review both direct and transitive dependencies.
CISA added CVE-2026-111497 to its Known Exploited Vulnerabilities catalog on October 27, 2026, with remediation due by November 10, 2026. Organizations tracking related identity and application security issues can also review the NIST 800-63B passkeys implementation FAQ and the digest authentication WordPress exposure analysis.
Are You Affected?
CVE-2026-111497 affects the Google Brotli decoder, specifically code in c/dec/decode.c. A specially crafted Brotli-compressed stream can trigger the vulnerability. The primary concern is applications that automatically decompress attacker-controlled HTTP, HTTP/2, API, upload, proxy, or other network data.
| Field | Details |
|---|---|
| CVE ID | CVE-2026-111497 |
| CVSS | 9.8 |
| Attack vector | Network |
| Authentication required | None |
| Privileges required | None reported; remote unauthenticated exploitation is described |
| Affected upstream versions | Brotli 1.0.3 through 1.2.0 |
| Fixed upstream versions | Brotli 1.0.10, 1.1.1, and 1.2.1 |
| Patch available | Yes |
| CISA KEV | Yes, added October 27, 2026 |
| CISA remediation due date | November 10, 2026 |
The affected upstream ranges should be interpreted as follows:
- Brotli
1.0.3through versions before1.0.10 - Brotli
1.1.0through versions before1.1.1 - Brotli
1.2.0through versions before1.2.1
The supplied NVD result does not include the complete CVSS vector string, so individual CVSS metrics should not be inferred beyond the available description. The record describes a remotely reachable, unauthenticated attack path, which explains the high score.
Brotli is frequently bundled into other products rather than installed as a clearly identifiable standalone service. Potentially affected integrations include:
- Node.js
- Python
brotliandbrotlicffi - Envoy
- Istio
- .NET-related components
brotli4j- Operating-system Brotli packages
- Other applications or libraries that decode attacker-controlled streams
A bundled library does not automatically mean a product is remotely exploitable. Exposure depends on whether the product invokes the vulnerable decoder on untrusted input.
Analyst’s Take: Treat this first as an exposure and dependency-inventory problem, not just a package upgrade. CISA KEV inclusion sets the urgency, but practical risk still depends on whether a service feeds attacker-controlled data into the decoder.
The Fix, If You’re in a Hurry
Upgrade affected upstream Brotli installations to one of the fixed releases identified in the available vulnerability data:
1.0.101.1.11.2.1
For downstream products, use the vendor’s security release rather than replacing a library manually inside a packaged application. Node.js users should apply the applicable October 2026 security release. Administrators of Python, Envoy, Istio, .NET-related, brotli4j, and operating-system deployments should check their package or vendor advisories for the exact fixed product version.
First identify whether Brotli is dynamically linked or statically bundled. Typical Linux checks include:
# Debian/Ubuntu package inventory
dpkg-query -W -f='${Package}\t${Version}\n' 2>/dev/null | grep -i brotli
# RPM-based package inventory
rpm -qa | grep -i brotli
# Search common application trees for Brotli artifacts
find /opt /srv /usr/local \( -iname '*brotli*' -o -iname '*brotlicffi*' \) 2>/dev/null
If immediate patching is impossible, disable Brotli decoding or restrict untrusted compressed input where the affected product supports that control. For an HTTP service, this may mean temporarily removing br from accepted content encodings or configuring the reverse proxy not to forward Brotli-compressed input to a vulnerable backend. This is a product-specific workaround, not a substitute for upgrading.
Technical Notes
For a source-based Brotli deployment, the operational fix is to build and install a fixed release, then restart every process that loads the library:
git clone https://github.com/google/brotli.git
cd brotli
git checkout v1.2.1
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
sudo cmake --install build
sudo ldconfig
sudo systemctl restart <affected-service>
Validate the repository, release, and build process against your organization’s approved source and package controls. If the application statically bundles Brotli, installing a system library will not remediate it; the application itself must be updated.
How This Vulnerability Works
The vulnerable component is the Brotli decoder in c/dec/decode.c. The issue is described as a buffer overflow or out-of-bounds memory write involving decoder state and an unchecked return value. A maliciously constructed Brotli stream can cause the decoder to mishandle state and corrupt adjacent memory.
The immediate security boundary is the code that accepts and decompresses the stream. In a web stack, that may be a front-end server, reverse proxy, API gateway, application runtime, upload processor, or service-to-service client. If the decoder runs inside a privileged or internet-facing process, the consequences can extend beyond a simple crash.
Potential impacts include corruption of adjacent decoder-state memory, disclosure of sensitive memory contents, denial of service, and potentially arbitrary-code execution. The exact result depends on the integration, compiler, memory layout, mitigations, process privileges, and how the application handles decoded data.
Organizations should not assume that every deployment is exploitable for code execution, but they should also not downgrade the issue to a local-only crash.
Technical Notes
A vulnerable execution path generally has this shape:
attacker-controlled compressed stream
|
v
network-facing component accepts Brotli data
|
v
Brotli decoder processes stream
|
v
decoder state corruption or out-of-bounds write
|
+--> crash / denial of service
+--> sensitive memory disclosure
+--> possible code execution, depending on context
The flaw is in the decoder rather than in a single application protocol. Consequently, filtering one URL, user agent, or payload pattern is unlikely to provide reliable protection. Attackers can vary compressed streams while preserving the same malicious decoder condition.
Severity, Explained
CVE-2026-111497 has a reported CVSS score of 9.8, placing it in the critical range. The available record identifies a network-reachable attack path with no authentication requirement. It also describes potential impact across confidentiality, integrity, and availability, including memory disclosure, denial of service, and possible arbitrary-code execution.
The full CVSS vector string was not included in the supplied NVD result. Therefore, precise individual metric values should be confirmed in the current NVD record or applicable vendor advisory before they are used in formal risk scoring. The 9.8 score is sufficient to establish that internet-facing and untrusted-input processing paths deserve emergency prioritization.
Severity is also affected by deployment context. A Brotli library used only to decode trusted local files may have a narrower attack surface than a public API gateway or Node.js service accepting remote content. Conversely, a seemingly low-profile library may be embedded in many services, making dependency inventory and transitive-dependency analysis essential.
Is It Being Exploited?
Yes. CISA added CVE-2026-111497 to its Known Exploited Vulnerabilities catalog on October 27, 2026. That status confirms exploitation in the wild at the catalog level and should be treated as the primary urgency signal. CISA’s remediation due date is November 10, 2026.
The available information does not identify a specific threat actor, campaign, or confirmed ransomware operation. CISA’s ransomware-campaign field is unknown. Secondary reporting has referenced code-execution claims in a Node.js environment, but those reports should not be treated as a substitute for a vendor-confirmed exploit artifact.
A verified public proof-of-concept repository or confirmed exploit code was not identified in the supplied research. The absence of a public PoC does not reduce the priority: KEV inclusion indicates real-world exploitation even when exploit details are limited or not publicly reproducible.
Technical Notes
Treat the following as separate facts during incident triage:
| Question | Current assessment |
|---|---|
| Exploitation in the wild? | Yes, based on CISA KEV inclusion |
| Public verified PoC? | Not established in the supplied research |
| Specific threat actor identified? | No |
| Ransomware campaign use? | Unknown |
| Exploitability of every Brotli deployment? | No; it depends on exposure and integration |
Prioritization Checklist
Use the following sequence to manage CVE-2026-111497:
- Identify internet-facing services that accept, decompress, or forward Brotli data.
- Inventory direct and bundled dependencies in hosts, containers, runtimes, lockfiles, and application packages.
- Determine whether Brotli is dynamically linked or statically bundled.
- Apply vendor fixes for Node.js, Python, Envoy, Istio, .NET-related components,
brotli4j, and operating-system packages. - Patch upstream Brotli to
1.0.10,1.1.1, or1.2.1where appropriate. - Restart affected processes after patching and verify the loaded library or application build.
- Temporarily disable untrusted Brotli processing if an approved workaround is available and patching is delayed.
- Review logs and crash telemetry for suspicious activity before and after remediation.
- Document exceptions against the November 10, 2026 CISA remediation deadline.
Detecting It in Your Environment
Detection should begin with asset and dependency inventory, not with a search for one universal exploit signature. Identify all services that advertise or accept Brotli, all applications that link to Brotli, and all runtimes that bundle it. Pay particular attention to public web services, API gateways, proxies, content processors, and services that decode data before authentication.
Review crash telemetry and process behavior around Brotli-consuming applications. Indicators may include:
- Sudden worker restarts
- Segmentation faults
- Memory-access violations
- Unexplained service termination
- Abnormal child-process creation
- Outbound connections from a process that normally performs only decompression
These indicators are not specific to CVE-2026-111497, but they can help identify attempted exploitation or impact.
Technical Notes
Search reverse-proxy and web logs for requests negotiating Brotli, then correlate suspicious requests with crashes or restarts:
# Nginx-style logs containing Brotli in Accept-Encoding
grep -Ei 'Accept-Encoding:.*\bbr\b|content-encoding: *br' \
/var/log/nginx/access.log /var/log/nginx/error.log
# Search service logs for common memory-corruption symptoms
journalctl --since "2026-10-01" -u <affected-service> \
| grep -Ei 'segmentation fault|segfault|core dumped|bus error|abort|out.of.bounds|sanitizer|heap'
A generic SIEM query can correlate Brotli-related requests with process failures:
(
http.request_headers contains "Accept-Encoding" and
http.request_headers contains "br"
)
within 5m of
(
process.crash = true or
service.restart = true or
host.kernel_message matches "(segfault|general protection fault|core dumped)"
)
The exact fields vary by SIEM and log pipeline. A Brotli negotiation header alone is not malicious; it is common legitimate traffic. Use it as a correlation field with crash events, unusual request sizes, repeated requests from one source, malformed-request responses, and unexpected process behavior.
For network monitoring, inspect HTTP and HTTP/2 metadata for Brotli content encoding:
Content-Encoding: br
Accept-Encoding: ... br ...
Do not rely on a static payload signature unless it has been validated for the specific decoder and attack variant. Compressed data can vary substantially, and payload inspection may be impossible when traffic is encrypted.
Dependency scanners should also be run against container images, lockfiles, operating-system packages, and language-runtime installations:
# Example container image inspection
docker run --rm <image> sh -c '
(dpkg-query -W 2>/dev/null || rpm -qa 2>/dev/null || true) | grep -i brotli
'
# Python environment inspection
python -m pip show Brotli brotlicffi 2>/dev/null
python -m pip freeze | grep -Ei 'brotli|brotlicffi'
These commands identify package names and versions but do not prove whether a running process uses the vulnerable decoder. Confirm findings against process libraries, application manifests, and vendor release notes.
References and Further Reading
The primary technical record is the NVD entry for CVE-2026-111497. It identifies the affected Brotli range as 1.0.3 through 1.2.0, describes the decoder flaw in c/dec/decode.c, and lists fixed upstream releases 1.0.10, 1.1.1, and 1.2.1.
CISA’s Known Exploited Vulnerabilities catalog is the source for the confirmed exploitation status. The listing was added on October 27, 2026, with a remediation due date of November 10, 2026. The ransomware-campaign status is unknown.
Relevant references include:
- NVD record for CVE-2026-111497
- Node.js October 2026 security releases
- Node.js Brotli decoder advisory
- Google Brotli release reference
- Openwall oss-security discussion from October 23, 2026
- Openwall oss-security discussion from October 24, 2026
- Openwall oss-security discussion from October 26, 2026
- Palo Alto Networks advisory/status page
Organizations should validate downstream fixed versions directly with each vendor. The upstream Brotli fixed versions do not automatically define the fixed version for Node.js, Python packages, Envoy, Istio, .NET-related components, brotli4j, or operating-system distributions.
Treat CVE-2026-111497 as an emergency dependency and exposure-management issue. Start by identifying every Brotli decoder in internet-facing or untrusted-input paths, then patch or replace vulnerable components. If patching must wait, disable untrusted Brotli processing where the product supports it and investigate crashes or suspicious traffic around affected services.
This article may contain affiliate links. We earn a commission on qualifying purchases at no extra cost to you.