Node.js Updates Fix Brotli Decoder Flaw That Could Enable Remote Code Execution

· Original article ↗

Summary

Node.js fixed 10 flaws across supported release lines, including a Brotli decoder out-of-bounds write. A public proof of concept achieved code execution only on a deliberately weakened build; no in-the-wild exploitation was reported.

Key points

  • Node.js released fixes in versions 22.23.4, 24.22.1, and 26.12.1. Versions 20.x and earlier are end of life and will not receive these fixes.
  • The Brotli decoder flaw is an out-of-bounds write triggered by malformed compressed input. Applications are exposed when they decompress attacker-controlled Brotli data, including through node:zlib or fetch().
  • The Node.js project says the flaw could allow remote code execution. A public proof of concept published October 22 achieved code execution only on a deliberately weakened test build; on a standard build, its author reported a crash and limited memory read.
  • The updates reject the malformed input used by the proof of concept. No exploitation in the wild had been reported as of October 22.
  • Three other high-severity fixes address TLS certificate checks and dns.resolve hostname truncation; a medium-severity fix addresses repeated crypto.randomUUID() and crypto.randomInt() values in snapshot or single-executable applications.
  • The releases block eight intermediate certificate authority keys reported compromised from eMudhra and remove three emSign roots. Existing connections are not rechecked until their sessions time out, and end-of-life Node.js lines do not get the block.
  • Upgrading is the recommended fix; Node.js offers no temporary workaround for the Brotli flaw. Vercel added inbound-request firewall rules, but they do not cover Brotli responses fetched from other servers or replace upgrading.

Article Details

Vulnerability Types
  • Out-of-bounds write in the Brotli decoder triggered by malformed compressed input
  • TLS certificate validation bypass involving unusually formatted server IP addresses
  • Hostname truncation at an embedded null byte in dns.resolve
  • Repeated crypto.randomUUID() and crypto.randomInt() values in startup-snapshot or single-executable applications
Severity
High for the Brotli flaw; three other fixes are rated high, with remaining fixes rated medium or low.
Affected Versions
  • Node.js 22.x
  • Node.js 24.x
  • Node.js 26.x
Exploitation Status
not_reported
Exploit Availability
public_poc
Patch Status
available

CVE

Vendors

Products

Related Articles