An out-of-band release, two days late but comprehensive
The Node.js project shipped a security release on Wednesday, 29 July 2026, covering every currently active release line at once: version 22.23.2, 24.18.1, and 26.5.1. The release had originally been planned for 28 July but slipped by two days after infrastructure problems on the project's side, an unglamorous but common reason for a security patch to arrive later than announced. Once it landed, it covered a lot of ground: 11 separate vulnerabilities, three rated high severity, five medium, and three low.
The three high-severity fixes
Two of the high-severity issues sit in Node.js's HTTP/2 (Hypertext Transfer Protocol version 2) implementation. One, tracked as CVE-2026-56846 (CVE standing for Common Vulnerabilities and Exposures, the standard naming scheme for public vulnerability reports), lets retained HTTP/2 headers bypass the maxSessionMemory limit, opening a path to denial-of-service by exhausting server memory; it affects the 24.x and 22.x lines. The other, CVE-2026-56848, is a heap-use-after-free triggered by a re-entrant send operation in HTTP/2 handling, and it affects all three active lines: 26.x, 24.x, and 22.x. Both are the kind of bug that matters most to services terminating HTTP/2 connections directly, rather than sitting behind a proxy or content delivery network (CDN) that downgrades to HTTP/1.1 before traffic reaches the application.
The third high-severity fix is arguably the more interesting one for teams building with Node.js's newer security features. CVE-2026-58043, carrying a Common Vulnerability Scoring System (CVSS) score of 7.5, is a path-matching flaw in the Permission Model, the --permission flag that lets a developer sandbox what a Node.js process is allowed to touch on the filesystem. The bug can cause that sandbox to over-grant access beyond what was intended, which matters most for anyone using --permission specifically to contain untrusted or AI-generated code, exactly the use case the feature exists for. Notably, this was the only one of the three high-severity CVEs to have a published CVSS score at the time of release, a reminder that Node.js's own severity labels are, for now, more complete than what automated vulnerability scanners will show.
The rest of the batch
The five medium-severity fixes touch a mix of subsystems. Two concern the HTTPS Agent: CVE-2026-56850 allows mutual Transport Layer Security (mTLS) client identities to be reused across requests configured with different client certificates, and CVE-2026-58040 allows session reuse to skip hostname verification altogether. A third, CVE-2026-58041, affects the experimental node:sqlite module, where a SQLTagStore iterator can be replayed to re-execute writes; it is limited to the 26.x and 24.x lines. The remaining two are a Domain Name System (DNS) resolver bug, where dns.resolveAny() aborts when a response carries many A records, and a node:zlib issue where the synchronous compression application programming interfaces (APIs) can crash given a spoofed TypedArray length.
The three low-severity fixes are smaller in scope but not irrelevant: an HTTP parser bug that truncates headers in a way that could enable request smuggling, and two Permission Model issues where trace events or process reports could be written outside the configured allowlist. Alongside the CVE fixes, the release bumps two bundled dependencies: undici, Node.js's built-in HTTP client, moves to 8.9.0, 7.29.0, or 6.28.0 depending on the release line, and the HTTP parser library llhttp moves to 9.4.3 across all three lines.
What it means in practice
Not every Node.js deployment needs to treat this as a fire drill, and knowing which category a given service falls into is the useful first step. Applying the update immediately matters most for three situations: services that terminate HTTP/2 connections directly rather than behind a downgrading proxy or load balancer, anything relying on --permission sandboxing to contain untrusted or AI-generated code, and anything authenticating clients via mutual TLS certificates. Services sitting behind a reverse proxy, CDN, or HTTP/1.1 load balancer, or that never touch the still-experimental node:sqlite module, carry less urgency and can reasonably fold this into a normal patch cycle rather than an emergency one. Given that only one of the three high-severity CVEs has a published CVSS score so far, teams relying on automated dependency scanners to flag severity should not assume a quiet scanner means a quiet release; checking the Node.js security release notes directly is the more reliable signal until the remaining scores are published.





