Skip to main content
New2026 CISO Guide to Software Trust87% of public container images ship with high or critical CVEs.Get the guide
CleanStart

HTTP2Shell: Everything We Know So Far

6 min read
Contents

A vulnerability initially disclosed in Node.js has developed into a broader software supply chain security concern. Tracked as CVE-2026-111497, the flaw affects Google's Brotli decompression library, a component incorporated into multiple programming languages, runtimes and infrastructure products.

Initially referred to as Node2Shell, the vulnerability is also known as HTTP2Shell and Brotli2Shell. Its impact extends beyond Node.js to Python, .NET, Java, PowerShell, Envoy and other software that bundles or uses the affected decoder.

The vulnerability can potentially lead to memory disclosure or remote code execution. Security researchers have observed exploitation attempts and demonstrated code execution under controlled conditions. CISA has added CVE-2026-111497 to its Known Exploited Vulnerabilities catalog.

Here is what we know so far.

What is HTTP2Shell?

Brotli is a compression algorithm developed by Google and widely used to reduce the size of web content, including HTML, JavaScript, CSS and API responses. Browsers, web servers, application runtimes and HTTP clients use it to make data transfers more efficient.

When a system receives Brotli-compressed content, a decoder processes the compressed stream and reconstructs the original data.

CVE-2026-111497 is an out-of-bounds write vulnerability in Google's Brotli decoder, specifically in its block-decoding logic. A specially crafted compressed stream can trigger an invalid memory write during block-type transitions, potentially corrupting adjacent memory.

Depending on the affected application and execution environment, this can result in memory disclosure, application crashes or arbitrary code execution.

The vulnerability is in the Brotli decoder, not the HTTP/2 protocol itself. Although HTTP2Shell is a commonly used name, the issue can also be reached through software processing compressed files and other data.

Why does it affect more than Node.js?

Node.js was the initial focus because it bundles the vulnerable Brotli decoder. However, the same underlying component is incorporated into other runtimes, libraries and products.

This makes CVE-2026-111497 a shared-component vulnerability rather than an issue limited to one programming language.

Affected products and fixed versions

The following table covers major affected ecosystems. Fixed versions refer to vendor-patched releases; downstream distributions may backport fixes without changing the upstream version number.

Product / ecosystem

Affected versions

Fixed version(s)

Google Brotli C library

1.0.3–1.0.9, 1.1.0, 1.2.0

1.0.10, 1.1.1, 1.2.1

Node.js 22.x

Before 22.23.4

22.23.4

Node.js 24.x

Before 24.22.1

24.22.1

Node.js 26.x

Before 26.12.1

26.12.1

Bun

Before 1.4.4

1.4.4

Python Brotli

1.0.3–1.2.0

1.2.1

Python brotlicffi

1.0.3–1.2.0.x

1.2.1.0

.NET 8

Before 8.0.33

8.0.33

.NET 9

Before 9.0.22

9.0.22

.NET 10

Before 10.0.14

10.0.14

.NET 11 preview

Before RC3

RC3

Java brotli4j

Before 1.24.0

1.24.0

PowerShell 7.4

Before 7.4.22

7.4.22

PowerShell 7.5

Before 7.5.13

7.5.13

PowerShell 7.6

Before 7.6.9

7.6.9

Sources: Node.js security releases, Microsoft .NET advisory, Python Brotli, New Zealand NCSC, Field Effect's expanded product assessment.

The impact extends further. Research and vendor advisories have identified affected components in Envoy Proxy, Istio, Visual Studio, Palo Alto PAN-OS, Prisma Cloud Application Security Transporter Client, ClickHouse, DuckDB, Apache Arrow, MuPDF, FFmpeg through libjxl, and other projects that bundle Brotli.

Some of these products require specific configurations or processing paths to be exposed. For example, PAN-OS requires both TLS decryption and Brotli inspection to be enabled. Envoy and Istio exposure depends on Brotli decompression being configured. The .NET Framework is not affected, and .NET 7 remains affected without a listed fix.

Linux distributions also issue their own security updates and backports. Organizations should check distribution-specific package versions rather than relying only on upstream Brotli version numbers.

How can attackers exploit it?

The vulnerability becomes relevant when attacker-controlled data reaches a vulnerable Brotli decoder.

Network traffic: An attacker can send specially crafted Brotli-compressed data to an application or service that decompresses incoming requests or responses. This can happen through configured request decompression, HTTP clients or middleware.

File processing: Applications that process untrusted files may also reach the vulnerable decoder through embedded compressed data. Research involving JPEG XL and libjxl demonstrated that specially crafted image files could trigger the vulnerable code through file-processing workflows, including FFmpeg deployments.

The presence of an affected runtime or package does not automatically make an application exploitable. Exposure depends on whether the vulnerable decoder is present, whether the application uses it, and whether an attacker can control the data it processes.

HTTP2Shell exploitation: What has happened so far?

Attack activity emerged quickly after the vulnerability became public. Security researchers have reported automated scanning, exploitation attempts and demonstrations of code execution.

HTTP2Shell: Exploitation activity in the first 24 hours

402

20

12

60%

40%

🔍 Events recorded

🌐 Source IP addresses

🎯 Target Environments

⚠️ Exploitation attempts

🛡️ Discovery activity

Zscaler ThreatLabz, global deception network telemetry. These are observed events, not confirmed successful compromises.

Check Point Research independently reported suspicious activity in its own telemetry, including automated vulnerability scanning and probes targeting upload and ingestion endpoints. Its percentages represent a separate dataset and should not be combined with Zscaler's figures. Read Check Point's findings.

Evidence of exploitation has also become more significant:

  • October 26: ELLIO reported detecting an exploitation attempt against Node.js 24.22.0.
  • October 27: CISA added CVE-2026-111497 to its Known Exploited Vulnerabilities catalog.
  • October 29: NHS England reported active exploitation attempts and successful code-execution demonstrations against vulnerable Node.js builds. Read the NHS England alert.
  • October 29: New Zealand's NCSC warned of active exploitation and publicly available proof-of-concept exploits. Read the NCSC alert.

Researchers have demonstrated that remote code execution is possible, but exploitation reliability varies across builds and environments. Some laboratory attempts resulted in application crashes rather than successful code execution.

There is no reliable public aggregate figure for the number of systems successfully compromised. The observed activity and government warnings nevertheless make this an urgent vulnerability to investigate.

What should organizations do?

Organizations should investigate exposure across their software environments rather than checking Node.js alone.

  1. Inventory affected software: Identify Node.js, Bun, .NET, Python, Java, PowerShell, Envoy and system-level Brotli libraries.
  2. Inspect dependencies: Check direct and transitive dependencies, including native libraries bundled inside application packages.
  3. Assess exposure: Determine whether applications, HTTP clients, proxies or file-processing workflows handle attacker-controlled compressed data.
  4. Apply vendor updates: Upgrade to patched runtime and library versions. Where patches are unavailable, follow vendor guidance and consider disabling Brotli decompression on exposed paths where feasible.
  5. Rebuild and redeploy: Update container images and self-contained applications. Updating a host package may not update a separately bundled library.
  6. Monitor for suspicious activity: Look for malformed Brotli payloads, unexpected worker crashes, memory access violations and unusual processes or network connections.

For additional technical details on the Node.js implementation, affected versions and remediation, see CleanStart's CVE-2026-111497 security advisory.

The bigger issue: A shared component, a wider attack surface

HTTP2Shell demonstrates how a vulnerability in a shared software component can extend far beyond the product in which it is first discovered.

A Node.js-only assessment would miss potential exposure in Python packages, .NET applications, Java integrations, proxies, file-processing tools and operating system libraries. Security teams need visibility into the components their software packages, not just the products and runtimes they deploy.

For container environments, this means inspecting base images, application dependencies and bundled native libraries, then verifying that patched components have reached running workloads.

The priority is to identify every instance of the vulnerable Brotli decoder, determine whether untrusted data can reach it, and ensure that available fixes are deployed across the environment.

CleanStart Security

CleanStart Security

The CleanStart team brings you the latest news, insights, and quick takes from the world of cybersecurity and software supply chain security.

Frequently Asked Questions


HTTP2Shell is a vulnerability in Google's Brotli decompression library, tracked as CVE-2026-111497. It is an out-of-bounds write flaw that can cause memory corruption when specially crafted Brotli-compressed data is processed. Depending on the affected application and environment, exploitation can result in memory disclosure, denial of service or potentially remote code execution.

Yes. Node2Shell was the name initially used when the vulnerability was identified in Node.js. As researchers discovered that the same vulnerable Brotli decoder was used across other runtimes, libraries and products, the names HTTP2Shell and Brotli2Shell also gained traction. All refer to CVE-2026-111497, not separate vulnerabilities.

The vulnerability affects software incorporating vulnerable versions of Google's Brotli decoder. Identified ecosystems include Node.js, Python, .NET, Java and Bun. Infrastructure and other products using the affected decoder include Envoy Proxy, Istio and certain Linux distribution packages. Other software, including file-processing tools, may also be exposed through bundled Brotli implementations.

Not every installation is necessarily exploitable. Exposure depends on the affected component being present and processing attacker-controlled compressed data.

Yes. In Python, the affected packages include Brotli versions up to 1.2.0 and brotlicffi versions up to 1.2.0.x. The fixed versions are Brotli 1.2.1 and brotlicffi 1.2.1.0.

In .NET, affected runtimes include .NET 8, 9 and 10 before their respective security updates. The fixed releases are 8.0.33, 9.0.22 and 10.0.14. .NET Framework is not affected.

Importantly, Microsoft's advisory states that ASP.NET Core request decompression and HttpClient automatic response decompression are not enabled by default. Applications become exposed when they enable Brotli decompression or explicitly process attacker-controlled data using the affected APIs.

An attacker can provide specially crafted Brotli-compressed data to an application that uses a vulnerable decoder. This may happen through incoming HTTP requests, automatically decompressed HTTP responses or file-processing workflows that handle compressed data.

Successful exploitation depends on the application using the vulnerable decoder and allowing attacker-controlled data to reach it. The resulting memory corruption may cause an application crash, information disclosure or potentially arbitrary code execution.

Yes. Security researchers have reported exploitation attempts and active probing. Zscaler ThreatLabz recorded 402 events from 20 source IP addresses targeting 12 customers within the first 24 hours of disclosure. CISA subsequently added the vulnerability to its Known Exploited Vulnerabilities catalog, and government security agencies reported active exploitation.

Researchers have also demonstrated remote code execution in controlled environments. However, there is no reliable public aggregate count of successful compromises attributable to HTTP2Shell.

Organizations should inspect both base images and application-level dependencies. A vulnerable Brotli decoder may be included in a system package, bundled runtime, language package or native library, independently of the base operating system.

Start by establishing visibility across container environments. CleanStart CleanSight helps security and platform teams discover container assets across AWS, GCP and Azure, including clusters, registries and deployed container workloads, through agentless, read-only discovery.

Once the container inventory is established, organizations should:

  • Review image SBOMs, dependency lockfiles and package inventories to identify affected Brotli components.
  • Check runtime and application dependencies, including separately bundled native libraries.
  • Upgrade vulnerable packages and runtimes to patched versions.
  • Rebuild and redeploy affected images.
  • Verify that patched components are actually running in production.

CleanSight helps identify where containers are running and what needs to be assessed. Combined with SBOM analysis and vulnerability assessment, this gives security teams a more complete view of their exposure.

Related Blogs

See All
Php2shell attack
Supply Chain Attack
4 min read

PHP2Shell: What You Need to Know About Two Critical PHP Vulnerabilities

PHP2Shell (CVE-2026-109618, CVE-2026-109619) enables unauthenticated RCE in PHP. See fixed versions for 8.2 to 8.5 and how to patch and verify your runtime.

Read more
Gitlab
Supply Chain Attack
7 min read

AI Infrastructure Is Software Infrastructure. Secure It Accordingly.

GitLab's critical AI Gateway vulnerability highlights the need for stronger isolation, least privilege, dependency management, and verified software foundations.

Read more
Model file becomes the attack surface banner
Supply Chain Attack
7 min read

When the Model File Becomes the Attack Surface

A look at the Ollama vulnerability and why AI security must protect not just model artifacts, but the software that parses, transforms, and distributes them.

Read more