En-tête négligent

Node.js October 2026 Security Releases: CVE and Upgrade Matrix

The Node.js security releases published October 21, 2026 correct ten Node.js CVEs plus bundled dependency issues. The fixed releases are 22.23.4, 24.22.1 et 26.12.1. The highest severity is High, but priority depends on which APIs an application uses and which attacker-controlled inputs reach them.

The official Node.js release advisory covers DNS truncation, TLS hostname validation, Brotli memory corruption, keep-alive response confusion, startup-snapshot entropy reuse, ZIP parsing and Permission Model bypasses. It also updates c-ares, eMudhra CA material, OpenSSL, SQLite and Undici on applicable release lines.

Fixed release matrix

Ligne de libérationFixed releaseImportant scope
Node.js 22.x22.23.4DNS, TLS, Brotli, HTTP agent, snapshot entropy and Permission Model; bundled dependencies
Node.js 24.x24.22.1Same major high/medium issues; bundled dependencies
Node.js 26.x26.12.1All release issues, including the 26.x-only ZIP and wildcard Permission Model findings

End-of-life Node.js lines do not receive these fixes. Moving an application to a currently supported line is part of remediation; copying individual commits into an unsupported runtime creates a private maintenance burden and does not provide normal project security support.

Exposure matrix

CVETrigger or featureDecision question
CVE-2026-105482dns.resolve*() ou dns.reverse() with NUL-containing namesCan an untrusted hostname pass validation and reach c-ares resolution?
CVE-2026-105483Fullwidth digits in IP-like TLS hostsCan an attacker influence a TLS destination or hostname used for identity checks?
CVE-2026-106069Leading-zero, non-canonical IPv4 notationCan platform resolution and certificate normalization disagree?
CVE-2026-111497Untrusted Brotli data processed through node:zlibDoes the application decode attacker-controlled compressed content?
CVE-2026-105481HTTP Agent keep-alive reuseCan an untrusted server send an unsolicited response before a reused request?
CVE-2026-106072Non-canonical numeric IPv4 spellingsCan a DNS SAN authenticate an IP endpoint because host classification is wrong?
CVE-2026-106074Startup snapshots or SEAs built after random APIs are calledAre entropy caches serialized and reused across processes?
CVE-2026-106070Node.js 26 zlib.ZipFileDoes a security scanner or importer trust content returned after header mismatch?
CVE-2026-106071Node.js 26 wildcard filesystem grantsDo root-level wildcard rules unintentionally grant a shorter path?
CVE-2026-106073fs.realpathSync() under the Permission ModelCan restricted code probe paths outside the read grant?
Scope and ownership boundaries: DNS / TLS identity; Brotli decoding; HTTP / snapshots; ZIP / permissions.
Release-level workflow; individual CVE prerequisites still apply.

Upgrade the artifact that actually runs

A developer workstation upgrade does not remediate a container image, serverless runtime, packaged desktop application or single executable application. Inventory Node.js by deployment artifact:

  • base images and image digests;
  • OS packages, tarball installations and version managers;
  • CI runners and build images;
  • serverless and edge runtime versions;
  • Electron or desktop applications that bundle Node.js;
  • startup snapshots and single executable applications that must be rebuilt.

Use read-only checks in the deployed environment:

node --version
node -p "process.versions"
node -p "process.execPath"
npm ls undici --all 2>/dev/null

# Container example: verify the immutable image and runtime together
docker inspect --format '{{.Image}} {{.Config.Image}}' CONTAINER
docker exec CONTAINER node -p "process.version + ' ' + process.execPath"

Test behavior without weaponizing the flaws

Prefer regression tests that reject unsafe input rather than reproducing memory corruption or certificate bypass. Add cases for embedded NUL characters, non-canonical IP spellings, excessive or malformed compressed responses, unexpected keep-alive data and Permission Model boundary paths. Run them in an isolated test environment against the upgraded runtime and record the expected rejection behavior.

For CVE-2026-106074, rebuild snapshots and SEAs with the fixed runtime. Updating the machine’s system Node.js does not alter an already produced executable. Confirm that parallel instances no longer repeat snapshot-seeded identifiers and that application uniqueness assumptions are valid independently of the runtime fix.

Verification and closure workflow: Map release line; Upgrade runtime; Rebuild artifacts; Verify live process.
Release-level workflow; individual CVE prerequisites still apply.

Bundled dependencies need their own inventory

The Node.js release updates bundled components, including Undici, but an application can also declare its own undici dependency. The runtime upgrade and the application dependency upgrade are separate checks. Record both process.versions and the resolved package tree, rebuild lockfiles only through the project’s controlled process, and verify the deployed artifact rather than the source branch.

Conclusion

Move supported deployments to Node.js 22.23.4, 24.22.1 or 26.12.1, then verify the active runtime in every artifact. Use API-level exposure questions to prioritize testing, rebuild snapshots and packaged applications, and inspect separately installed dependencies. The fixed version is the start of closure; the deployed executable and regression evidence complete it.

Partager l'article :
Articles connexes
fr_FRFrench