HTTP2Shell (Node2Shell)
CVE-2026-111497, also known as HTTP2Shell, Node2Shell, and Broccoli2Shell, is an out-of-bounds write vulnerability in Google's reference C Brotli decoder. Affected upstream releases are 1.0.3 through 1.0.9, 1.1.0, and 1.2.0, across all platforms. DecodeBlockTypeAndLength() conflates invalid block switches with insufficient input, while the fast decoding path discards its return value. Malformed compressed input can consequently leave stale decoder state and cause memory corruption. Software incorporating the vulnerable decoder may be exposed through HTTP request decompression, automatically decompressed HTTP responses, or Brotli-compressed file formats. Potential consequences include process crashes, sensitive memory disclosure, and arbitrary code execution. The HTTP2Shell name does not denote an HTTP/2 protocol vulnerability. Exploit reachability and general reliability remain disputed, although code execution has been reported against a stock Node.js Linux arm64 build.
What it means and what to do now: patch path, interim mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
Successful exploitation can corrupt adjacent decoder state, terminate the decoding process, disclose sensitive process memory, or potentially execute arbitrary code with the affected process's privileges. Memory disclosure could expose credentials and application secrets; code execution could compromise data and resources accessible to the process. Impact extends beyond Node.js to applications, clients, proxies, and file-processing tools incorporating affected Brotli decoder copies. Reported code execution is configuration-specific and does not establish reliable exploitation across platforms. No confirmed in-the-wild exploitation was reported as of October 24, 2026.
If you can’t patch tonight, do this now.
Until patched, prevent attacker-controlled data from reaching affected decoders. Reject Brotli-encoded request bodies before decompression, disable unnecessary request-body inflation, and remove configured Brotli decompressors from proxies. Disable automatic Brotli response decoding or reject Brotli responses before decompression; removing optional Python Brotli packages can eliminate that decoding path where operationally acceptable. Restrict untrusted fetch destinations and suspend or quarantine ingestion of untrusted Brotli-compressed files. Merely omitting br from Accept-Encoding is insufficient because clients may still decode responses marked with Content-Encoding: br. Inbound WAF filtering does not protect outbound response-decoding paths. Least privilege and process isolation can reduce consequences but do not correct the decoder flaw.
Patch, then assume compromise.
Upgrade upstream Brotli to the fixed release for the applicable branch: 1.0.10, 1.1.1, or 1.2.1, or a subsequent fixed release. Alternatively, apply the upstream decoder fix that propagates block-switch errors through both safe and fast paths and introduces BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH (-17). Update Node.js to 22.23.4, 24.22.1, or 26.12.1 or later in the respective branch; migrate unsupported release lines. Update Bun to at least 1.4.4, Python Brotli to at least 1.2.1, and brotlicffi to at least 1.2.1.0. Inventory dynamically linked, vendored, and statically embedded decoder copies, including those inside runtimes, wheels, containers, and compiled applications. Apply distribution or product-specific security updates, rebuild affected artifacts and compiled Bun executables, redeploy, and restart processes. Verify the decoder actually used by running workloads; distribution backports and system-linked libraries make upstream version checks alone insufficient.
9 exploits validated by Mallory's analysis. Hidden: 32 rejected by Mallory's analysis as not a working exploit.
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
369 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.