Skip to content

+Threat Wire · Needs attention

node2shell

CVE-2026-111497 is a memory-corruption flaw in the shared Brotli decoder. Any service that decompresses attacker-controlled Brotli, in a request or an HTTP response, can be exposed.

Assess your exposureCVE-2026-111497Checked Oct 25

What it means for your AI agents

Agent backends, MCP servers and webhook receivers are usually built on these runtimes and libraries. A flaw that runs code before authentication hands an attacker the agent's keys and tool access, not just the server.

  • Check the services behind your agents and MCP tools, including ones that only call outward.
  • Look for the affected component in dependencies too, not just the runtime you installed directly.
  • Until patched, treat output from an affected service as untrusted input to your agents.

Updates

  • Oct 21, 2026 : Node.js published security-release guidance for the vulnerability.

Details

node2shell is the early name for CVE-2026-111497, an out-of-bounds write in the Brotli decoder. The decoder can mistake a malformed block switch for a temporary lack of input, continue appending bytes to a small internal buffer, and corrupt process memory.

The name can be misleading: the flaw is in a widely reused Brotli library, not in Node.js alone. It can reach applications through runtimes, HTTP clients, framework middleware, and container images that bundle or install the decoder.

In Node.js, applications can reach the decoder through node:zlib or Brotli-aware request middleware. Node.js built-in fetch is powered by Undici and automatically handles Brotli responses, so server-side URL fetches and remote-image features require review too. Next.js remote image optimization is one such path. Gzip, Deflate, and Zstd use different decoders. Remediation guidance was still developing at the October 25 review.

Risk

The decoder is used beyond Node.js, including in server-side fetches. The October 25 review did not confirm active exploitation.

Affected deployments

Services that use a vulnerable Brotli decoder, including bundled copies in runtimes and container images. Node.js request middleware and server-side fetches both need review.

Evidence and sources3 links

Vendor advisory

Affected Node.js releases and the security update.

Node.js security advisory

CVE record

CVE-2026-111497

Technical research

How the shared decoder reaches applications outside Node.js.

Aikido Node2Shell research

Check your exposure with an agent

Paste this into an AI agent that can see your infrastructure. It asks for a read-only check of what's affected, including the systems behind your agents, and a table you can act on. Copying it changes nothing.

Prompt
Assess whether the infrastructure you can access is affected by node2shell (CVE-2026-111497). Work read-only within your authorized access: do not run exploits, change configuration, restart services or install anything.

1. Confirm the affected and fixed versions from the vendor advisories and CVE records:
   - https://nodejs.org/en/blog/vulnerability/october-2026-security-releases#nodejs-brotli-decoder-out-of-bounds-write-permits-remote-code-execution-cve-2026-111497---high
   - https://www.cve.org/CVERecord?id=CVE-2026-111497
   - https://www.aikido.dev/blog/python-packages-vulnerable-node2shell-brotli-cve-2026-111497
   Cite each source and the date you read it. Say plainly what you could not verify.

2. Inventory the systems that could run the affected software, including the hosts, containers, MCP servers, tool runners and sandboxes behind any AI agents. For each, record the asset, environment, owner if known and the version actually running, from read-only evidence (package metadata, version commands, platform inventory).

3. Note which affected systems are reachable from the internet or from agents and tools, and which credentials (model-provider keys, tool tokens, service accounts) are stored on them.

4. Report one row per asset: asset, running version, affected (yes / no / unknown), reachable from, credentials at risk, evidence, and the next step. List anything you could not access as a gap rather than assuming it is safe.

More from the Threat Wire

Briefing source: Cloudflare Radar Zero Wire (Cloudforce One), last checked October 25, 2026. Refreshed here every 30 minutes.