# Node.js 25.8.2

Node.js 25.8.2, released March 24, 2026, fixes 8 CVEs in Node.js. None of them is reported as exploited. Patch Radar priority: High. The latest Node.js is 26.12.1, which also fixes every one of these CVEs.

- Web page: https://patchblox.com/security/fix/windows-app/openjs.nodejs-25.8.2
- Platform: Windows apps
- Released: Mar 24, 2026
- Priority: High (Closes CVE-2026-21710, high severity)
- CVEs: 8, exploited: 0, on CISA KEV: 0
- Superseded by: [Node.js 26.12.1](https://patchblox.com/security/data/product/windows-app/node.js.md), the latest version, which also fixes every CVE listed here

## Applies to

| Product | Release | Fixed in |
|---|---|---|
| [Node.js](https://patchblox.com/security/data/product/windows-app/node.js.md) |  | 25.8.2 |

## CVEs this fix closes

| CVE | Priority | Title | CVSS | EPSS | Exploitation |
|---|---|---|---:|---:|---|
| [CVE-2026-21710](https://patchblox.com/security/data/cve/CVE-2026-21710.md) | High | 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** | 7.5 | 0.2544 |  |
| [CVE-2026-21714](https://patchblox.com/security/data/cve/CVE-2026-21714.md) | High | Node.js 14 and 15 others: Missing Release of Memory after Effective Lifetime | 7.5 | 0.0043 |  |
| [CVE-2026-21713](https://patchblox.com/security/data/cve/CVE-2026-21713.md) | High | Node.js 14 and 15 others: Observable Timing Discrepancy | 7.5 | 0.0037 |  |
| [CVE-2026-21712](https://patchblox.com/security/data/cve/CVE-2026-21712.md) | High | A flaw in Node.js URL processing causes an assertion failure in native code when `url.format()` is called with a malformed internationalized domain name (IDN) containing invalid characters, crashing the Node.js process. | 7.5 | 0.0033 |  |
| [CVE-2026-21717](https://patchblox.com/security/data/cve/CVE-2026-21717.md) | High | A flaw in V8's string hashing mechanism causes integer-like strings to be hashed to their numeric value, making hash collisions trivially predictable. By crafting a request that causes many such collisions in V8's internal string table, an attacker can significantly degrade performance of the Node.js process.  The most common trigger is any endpoint that calls `JSON.parse()` on attacker-controlled input, as JSON parsing automatically internalizes short strings into the affected hash table.  This vulnerability affects **20.x, 22.x, 24.x, and 25.x**. | 7.5 | 0.0027 |  |
| [CVE-2026-21711](https://patchblox.com/security/data/cve/CVE-2026-21711.md) | High | Node.js 14 and 12 others: Improper Access Control | 7.5 | 0.0017 |  |
| [CVE-2026-21715](https://patchblox.com/security/data/cve/CVE-2026-21715.md) | High | Node.js 14 and 15 others: Incorrect Permission Assignment for Critical Resource | 7.5 | 0.0015 |  |
| [CVE-2026-21716](https://patchblox.com/security/data/cve/CVE-2026-21716.md) | High | Node.js 14 and 15 others: Missing Authorization | 7.5 | 0.0014 |  |

---

Data as of 2026-11-08T06:59:42Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
