Skip to main content
No exploitation reportedAwaiting NVD analysis

CVE-2026-123865

Node.js is vulnerable to an HTTP/2 memory and file-descriptor leak via a protocol error during session shutdown

No exploitation reported by the sources we read.

  • Published2026-11-11
  • WeaknessCWE-400

Am I affected?

With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.

Description

An unauthenticated HTTP/2 client can permanently leak Node.js server memory and file descriptors. If a peer triggers a protocol error, for example an oversized frame header, while the session is already shutting down, nghttp2 tears the session down internally but Node.js never notices, leaving a dangling session: the socket stays in CLOSE_WAIT and all of Node.js's HTTP/2 state for that connection is held in memory indefinitely, with no further cost to the attacker. The attacker can start the shutdown remotely by sending GOAWAY(NO_ERROR), so it is reliable against default HTTP/2 servers. It is an incomplete-fix case of CVE-2026-48937: that fix detected nghttp2 internal terminations by watching for GOAWAY sent while not shutting down, but missed terminations that arrive while the session is already shutting down. This vulnerability affects Node.js 26.x, 24.x, and 22.x.

Timeline

dates in UTC
  1. 2026-11-1118:19CVE publishedCNA

Versions per branch

Products declared by the CNA

As openjs, the CNA that assigned this CVE, declared them in the CVE record; versions as written. NVD lists no product for this CVE yet: this is the only product data so far.

  • nodejs nodeother versions: not affected
    Affected
    • ≥ 0.0.0, < 22.23.5fixed in 22.23.5semver
    • ≥ 23.0.0, < 24.22.3fixed in 24.22.3semver
    • ≥ 25.0.0, < 26.13.1fixed in 26.13.1semver

Source: the CNA record (CVE Program), © The MITRE Corporation,CVE Terms of UseCVE recordupdated 2026-11-11

Neither OSV.dev nor the vendor advisories we read list affected versions for CVE-2026-123865 yet.

Full record on NVD

Fix

No fix published by the sources we read yet. NVD record

Detection

Nuclei template
none so far
ProjectDiscovery
Exploit-DB
no entry
Exploit-DB
Metasploit modules
none listed
Metasploit Framework

Sources

  • NVDCVE recordread 2026-11-11
  • CNACVSS 3.07.52026-11-11
  • CNAweakness (CWE)CWE-4002026-11-11

Identifiers

Technical details

CVSS v3 Vector
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Published
2026-11-11
Last Modified
2026-11-11
NVD status
Received

Frequently asked questions

What is CVE-2026-123865?

An unauthenticated HTTP/2 client can permanently leak Node.js server memory and file descriptors. If a peer triggers a protocol error, for example an oversized frame header, while the session is already shutting down, nghttp2 tears the session down internally but Node.js never notices, leaving a dangling session: the socket stays in CLOSE_WAIT and all of Node.js's HTTP/2 state for that connection is held in memory indefinitely, with no further cost to the attacker. The attacker can start the shutdown remotely by sending GOAWAY(NO_ERROR), so it is reliable against default HTTP/2 servers. It is an incomplete-fix case of CVE-2026-48937: that fix detected nghttp2 internal terminations by watching for GOAWAY sent while not shutting down, but missed terminations that arrive while the session is already shutting down. This vulnerability affects Node.js 26.x, 24.x, and 22.x.

Is CVE-2026-123865 actively exploited?

Active exploitation of CVE-2026-123865 has not been confirmed.

What is the CVSS score for CVE-2026-123865?

CVE-2026-123865 has a CVSS v3 base score of 7.5 (HIGH severity), with vector string CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H.

Hear about the next vulnerability in your software

Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».

No credit card required · No monthly cap on website lookups · 250 API requests/month

Sources for this record