Medium · published March 31, 2026
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**.
| Product | Versions | Fixed in |
|---|---|---|
| nodejs/node.js | ≤ 20.20.1 | — |
| nodejs/node.js | ≥ 22.0.0, ≤ 22.22.1 | — |
| nodejs/node.js | ≥ 24.0.0, ≤ 24.14.0 | — |
| nodejs/node.js | ≥ 25.0.0, ≤ 25.8.1 | — |