CVE-2026-21710: Vulnerability in nodejs node
A flaw in Node.js HTTP request handling causes an uncaught `TypeError` when a request is received with a header named `__proto__` and the application accesses `req.headersDistinct`. When this occurs, `dest["__proto__"]` resolves to `Object.prototype` rather than `undefined`, causing `.push()` to be called on a non-array. This exception is thrown synchronously inside a property getter and cannot be intercepted by `error` event listeners, meaning it cannot be handled without wrapping every `req.headersDistinct` access in a `try/catch`. * This vulnerability affects all Node.js HTTP servers on **20.x, 22.x, 24.x, and v25.x**
AI Analysis
Technical Summary
CVE-2026-21710 is a vulnerability in the Node.js HTTP server implementation affecting multiple active LTS and current releases including 20.x, 22.x, 24.x, and 25.x. The issue arises when an HTTP request includes a header named '__proto__' and the application accesses the req.headersDistinct property. Internally, the code attempts to push header values into an array stored in dest["__proto__"]. However, due to JavaScript prototype chain behavior, dest["__proto__"] resolves to Object.prototype instead of an array or undefined. Consequently, the .push() method is invoked on Object.prototype, which is not an array, causing a synchronous TypeError to be thrown inside a property getter. This exception bypasses Node.js’s usual error event listeners and cannot be intercepted or handled unless every access to req.headersDistinct is wrapped in try/catch blocks, which is impractical. The vulnerability leads to a denial of service (DoS) condition by crashing the HTTP server process. The CVSS v3.0 score is 7.5 (high), reflecting network exploitable, no privileges or user interaction required, and an impact limited to availability. No known exploits have been reported yet, but the widespread use of Node.js in web servers and applications makes this a significant risk. The flaw stems from improper handling of prototype pollution vectors in HTTP header processing, a common source of JavaScript security issues. The vulnerability affects all Node.js HTTP servers that rely on req.headersDistinct and do not implement additional input validation or error handling for this edge case.
Potential Impact
The primary impact of CVE-2026-21710 is denial of service due to server crashes triggered by malicious HTTP requests containing the '__proto__' header. Organizations running vulnerable Node.js versions in production risk service outages, which can disrupt business operations, degrade user experience, and potentially cause financial losses. Since Node.js is widely used for web servers, APIs, and microservices globally, this vulnerability can affect a broad range of industries including technology, finance, e-commerce, and government services. The ease of exploitation—requiring no authentication or user interaction—means attackers can remotely trigger crashes simply by sending crafted HTTP requests. While the vulnerability does not directly compromise confidentiality or integrity, repeated exploitation could be used as part of larger denial of service campaigns or to distract from other attacks. The inability to catch the exception via standard error handlers complicates mitigation and increases the risk of unplanned downtime. Organizations with high-availability requirements or those relying heavily on Node.js HTTP servers should consider this vulnerability a critical operational risk.
Mitigation Recommendations
To mitigate CVE-2026-21710, organizations should immediately upgrade to patched Node.js versions once available from the official Node.js project. Until patches are applied, developers should audit their code to identify all accesses to req.headersDistinct and wrap them in try/catch blocks to gracefully handle potential exceptions. Implementing strict input validation to reject or sanitize HTTP headers named '__proto__' at the application or proxy level can prevent exploitation. Web application firewalls (WAFs) and API gateways should be configured to block requests containing suspicious headers like '__proto__'. Monitoring HTTP traffic for anomalous headers and setting up alerts can help detect attempted exploitation. Additionally, deploying Node.js processes with process managers that automatically restart crashed services can reduce downtime impact. Finally, educating development teams about prototype pollution risks and secure coding practices in JavaScript can help prevent similar issues in the future.
Affected Countries
United States, Germany, United Kingdom, India, China, Japan, France, Canada, Australia, Brazil, Netherlands, South Korea, Singapore
CVE-2026-21710: Vulnerability in nodejs node
Description
A flaw in Node.js HTTP request handling causes an uncaught `TypeError` when a request is received with a header named `__proto__` and the application accesses `req.headersDistinct`. When this occurs, `dest["__proto__"]` resolves to `Object.prototype` rather than `undefined`, causing `.push()` to be called on a non-array. This exception is thrown synchronously inside a property getter and cannot be intercepted by `error` event listeners, meaning it cannot be handled without wrapping every `req.headersDistinct` access in a `try/catch`. * This vulnerability affects all Node.js HTTP servers on **20.x, 22.x, 24.x, and v25.x**
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
CVE-2026-21710 is a vulnerability in the Node.js HTTP server implementation affecting multiple active LTS and current releases including 20.x, 22.x, 24.x, and 25.x. The issue arises when an HTTP request includes a header named '__proto__' and the application accesses the req.headersDistinct property. Internally, the code attempts to push header values into an array stored in dest["__proto__"]. However, due to JavaScript prototype chain behavior, dest["__proto__"] resolves to Object.prototype instead of an array or undefined. Consequently, the .push() method is invoked on Object.prototype, which is not an array, causing a synchronous TypeError to be thrown inside a property getter. This exception bypasses Node.js’s usual error event listeners and cannot be intercepted or handled unless every access to req.headersDistinct is wrapped in try/catch blocks, which is impractical. The vulnerability leads to a denial of service (DoS) condition by crashing the HTTP server process. The CVSS v3.0 score is 7.5 (high), reflecting network exploitable, no privileges or user interaction required, and an impact limited to availability. No known exploits have been reported yet, but the widespread use of Node.js in web servers and applications makes this a significant risk. The flaw stems from improper handling of prototype pollution vectors in HTTP header processing, a common source of JavaScript security issues. The vulnerability affects all Node.js HTTP servers that rely on req.headersDistinct and do not implement additional input validation or error handling for this edge case.
Potential Impact
The primary impact of CVE-2026-21710 is denial of service due to server crashes triggered by malicious HTTP requests containing the '__proto__' header. Organizations running vulnerable Node.js versions in production risk service outages, which can disrupt business operations, degrade user experience, and potentially cause financial losses. Since Node.js is widely used for web servers, APIs, and microservices globally, this vulnerability can affect a broad range of industries including technology, finance, e-commerce, and government services. The ease of exploitation—requiring no authentication or user interaction—means attackers can remotely trigger crashes simply by sending crafted HTTP requests. While the vulnerability does not directly compromise confidentiality or integrity, repeated exploitation could be used as part of larger denial of service campaigns or to distract from other attacks. The inability to catch the exception via standard error handlers complicates mitigation and increases the risk of unplanned downtime. Organizations with high-availability requirements or those relying heavily on Node.js HTTP servers should consider this vulnerability a critical operational risk.
Mitigation Recommendations
To mitigate CVE-2026-21710, organizations should immediately upgrade to patched Node.js versions once available from the official Node.js project. Until patches are applied, developers should audit their code to identify all accesses to req.headersDistinct and wrap them in try/catch blocks to gracefully handle potential exceptions. Implementing strict input validation to reject or sanitize HTTP headers named '__proto__' at the application or proxy level can prevent exploitation. Web application firewalls (WAFs) and API gateways should be configured to block requests containing suspicious headers like '__proto__'. Monitoring HTTP traffic for anomalous headers and setting up alerts can help detect attempted exploitation. Additionally, deploying Node.js processes with process managers that automatically restart crashed services can reduce downtime impact. Finally, educating development teams about prototype pollution risks and secure coding practices in JavaScript can help prevent similar issues in the future.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- hackerone
- Date Reserved
- 2026-01-04T15:00:06.574Z
- Cvss Version
- 3.0
- State
- PUBLISHED
Threat ID: 69cacda7e6bfc5ba1d6188a2
Added to database: 3/30/2026, 7:23:19 PM
Last enriched: 3/30/2026, 7:38:33 PM
Last updated: 3/31/2026, 4:10:01 AM
Views: 31
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.