endoflife.ai
Node.js Node 20 Node 18 EOL Checker

Node2Shell (CVE-2026-111497): Fixed in Node.js 22, 24 and 26, With No Official Fix for End-of-Life Node 20 and 18

By Scott Bissett  ·  Published: October 25, 2026  ·  EOL Watch  ·  The flaw, affected lines and fixed releases read on the day of publication from the Node.js project's October 21, 2026 security release; release-line dates from the Node.js release schedule, read twice and re-checked at every build; KEV checked against CISA's live catalog.

Node.js 20 and Node.js 18 get no official fix for CVE-2026-111497, the Brotli decoder flaw dubbed Node2Shell. The Node.js project's October 21, 2026 security release fixed it in Node.js 22.23.4, 24.22.1 and 26.12.1, and lists it as affecting the 26.x, 24.x and 22.x lines. The same release notes that End-of-Life versions are always affected when a security release occurs. Node.js 20 reached end of life on April 30, 2026 and Node.js 18 on April 30, 2025, so no Node.js release will carry the fix for either. Live status and EOL Risk Scores are on the Node.js page.

Quick answer: CVE-2026-111497, dubbed Node2Shell, is a high-severity out-of-bounds write in the Brotli decoder bundled with Node.js. The Node.js project fixed it on October 21, 2026 in 22.23.4, 24.22.1 and 26.12.1. End-of-life Node.js 20 (since April 30, 2026) and Node.js 18 (since April 30, 2025) get no official fix: the way out is an upgrade to 22, 24 or 26, or commercial extended support. The CVE is not in CISA's Known Exploited Vulnerabilities catalog.

Key Dates at a Glance

Running Node.js past end of life?
The good news: extended support for Node.js exists — vetted vendors ship security patches for years past the official date. Right now that coverage spans Node.js 12, 14, 16, 18, 20, with 210+ post-EOL CVE fixes documented in vendor release notes. Tell us where to reach you and we’ll reply with matched options and pricing guidance — or an honest “no vendor covers this.” Free, no obligation.

Free · No obligation · Independent — we track the dates, vendors don’t pay for placement · dates verified against vendor sources. See all support options →

Which Node.js lines get a fix

LineStatusCVE-2026-111497
Node.js 26Supported to April 30, 2029Fixed in 26.12.1
Node.js 24Supported to April 30, 2028Fixed in 24.22.1
Node.js 22Supported to April 30, 2027Fixed in 22.23.4
Node.js 20End of life since April 30, 2026No official fix
Node.js 18End of life since April 30, 2025No official fix
Node.js 25, 23 and 21End of life (25 since June 1, 2026)No official fix

What the flaw is

The Node.js advisory describes a flaw in the Brotli decoder bundled with Node.js: malformed compressed input could make the streaming decoder keep appending bytes to a small internal buffer and write past its end. An attacker who can supply Brotli data that an application decompresses with node:zlib can corrupt process memory, which Node.js says can lead to a crash, disclosure of process memory or remote code execution. The project rates it High.

Exposure depends on whether an application decompresses Brotli data it does not control, directly through node:zlib or through a library or HTTP client or server that decodes Brotli-compressed bodies for it. The flaw is in the Node.js runtime itself, so updating npm packages does not fix it.

Node.js 20 and 18: no official fix

The Node.js project fixes security issues only on supported lines. Node.js 20, end of life since April 30, 2026, and Node.js 18, end of life since April 30, 2025, therefore get no Node.js release for CVE-2026-111497. Neither do the odd-numbered lines 25, 23 and 21.

Two routes remain for systems still on 20 or 18: upgrade to a supported line (22, 24 or 26, each fixed in this release), or use commercial extended support, which exists for both lines. Our Node.js end-of-life guide covers the upgrade path and the support options, and the Node.js 18 vendor guide compares extended support for 18.

Exploitation status

CVE-2026-111497 is not in CISA's Known Exploited Vulnerabilities catalog as of the catalog dated October 23, 2026. Imperva's Red Team, which named the flaw Node2Shell, reported a laboratory proof of code execution against the official, unpatched Node.js 24.22.0 Linux arm64 image, noting that it did not succeed on every attempt and that the fixed 24.22.1 rejected the same input. Neither the Node.js project nor CISA reports exploitation in the wild.

What to do

  1. Find every Node.js runtime: node --version on servers, the base image tag in containers, and any runtime bundled inside desktop or serverless packaging.
  2. On 22, 24 or 26: update to 22.23.4, 24.22.1 or 26.12.1 or newer, and rebuild container images.
  3. On 20 or 18: plan the upgrade to 22, 24 or 26 now, or put the system under commercial extended support; until then, avoid decompressing untrusted Brotli data.
  4. Check the rest of the estate with the EOL Checker and the Node.js end-of-life guide.

Frequently Asked Questions

What is Node2Shell?

Node2Shell is the nickname Imperva's Red Team gave CVE-2026-111497, a high-severity out-of-bounds write in the Brotli decoder bundled with Node.js. The Node.js project fixed it on October 21, 2026 in Node.js 22.23.4, 24.22.1 and 26.12.1.

Is Node.js 20 or 18 fixed for Node2Shell?

Not by the Node.js project. Node.js 20 reached end of life on April 30, 2026 and Node.js 18 on April 30, 2025, and the project says end-of-life versions are always affected when a security release occurs. The options are an upgrade to 22, 24 or 26, or commercial extended support.

Is Node2Shell in CISA's KEV catalog?

No. As of CISA's catalog dated October 23, 2026, CVE-2026-111497 is not listed, and neither the Node.js project nor CISA reports exploitation in the wild. A laboratory proof of code execution against an unpatched Node.js 24 build has been published.

Related

© 2026 endoflife.ai · How we verify our dates · API · About