Impact
A flaw in Node.js HTTP request handling triggers an uncaught TypeError when a request contains a header named __proto__ and the application accesses req.headersDistinct. The fault occurs because accessing dest["__proto__"] resolves to Object.prototype, causing a .push() call on a non-array and resulting in a synchronous exception that cannot be caught by standard error handlers. This manifests as a crash of the Node.js process, leading to a denial of service. The weakness is a type confusion error (CWE‑843) that results in resource exhaustion (CWE‑770) through repeated crashes.
Affected Systems
All Node.js HTTP servers built on the Node.js runtime in the 20.x, 22.x, 24.x, and v25.x branches are affected. Any application that relies on the default HTTP module and accesses request headers via req.headersDistinct is susceptible to this crash when receiving the crafted header.
Risk and Exploitability
The CVSS score of 7.5 classifies the issue as moderately high severity, while the EPSS score of 0.26% indicates a low probability of exploitation in the near term. The vulnerability is not listed in the CISA KEV catalog. Attackers can trigger the crash simply by sending a crafted HTTP request containing the __proto__ header from any network location that can reach the vulnerable server, leading to an immediate denial of service. The exception is thrown synchronously inside a property getter and cannot be mitigated by generic error handling, underscoring the need for a specific patch or temporary workaround.
OpenCVE Enrichment
Debian DSA