7.5
/ 10
HIGH
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
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**
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**
Basic Information
ID
CVE-2026-21710
Source
hackerone
Published
Mar 30, 2026 at 19:07
Modified
Mar 31, 2026 at 13:55
Affected Product
Vendor
nodejs
Product
node
Version
20.20.1
Affected Versions
nodejs node 20.20.1
nodejs node 22.22.1
nodejs node 24.14.0
nodejs node 25.8.1
nodejs node 4.0
nodejs node 5.0
nodejs node 6.0
nodejs node 7.0
nodejs node 8.0
nodejs node 9.0
nodejs node 10.0
nodejs node 11.0
nodejs node 12.0
nodejs node 13.0
nodejs node 14.0
nodejs node 15.0
nodejs node 16.0
nodejs node 17.0
nodejs node 18.0
nodejs node 19.0
nodejs node 22.22.1
nodejs node 24.14.0
nodejs node 25.8.1
nodejs node 4.0
nodejs node 5.0
nodejs node 6.0
nodejs node 7.0
nodejs node 8.0
nodejs node 9.0
nodejs node 10.0
nodejs node 11.0
nodejs node 12.0
nodejs node 13.0
nodejs node 14.0
nodejs node 15.0
nodejs node 16.0
nodejs node 17.0
nodejs node 18.0
nodejs node 19.0