CVE-2026-21717
Estado: AnalizadaMedia (5.9)—
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**.
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
- Puntuación base: 5.9
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.27%
- Percentil entre todas las CVEs puntuadas: 17
- Fecha de la puntuación: 6/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (1)
CWE
- CWE-328
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-21717",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-21717",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-03-30T19:46:02.350544Z"
}
}
],
"cvssMetricV30": [
{
"type": "Secondary",
"source": "support@hackerone.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.0",
"baseScore": 5.9,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H",
"integrityImpact": "NONE",
"userInteraction": "NONE",
"attackComplexity": "HIGH",
"availabilityImpact": "HIGH",
"privilegesRequired": "NONE",
"confidentialityImpact": "NONE"
},
"impactScore": 3.6,
"exploitabilityScore": 2.2
}
],
"cvssMetricV31": [
{
"type": "Primary",
"source": "nvd@nist.gov",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 5.9,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H",
"integrityImpact": "NONE",
"userInteraction": "NONE",
"attackComplexity": "HIGH",
"availabilityImpact": "HIGH",
"privilegesRequired": "NONE",
"confidentialityImpact": "NONE"
},
"impactScore": 3.6,
"exploitabilityScore": 2.2
}
]
},
"affected": [
{
"source": "support@hackerone.com",
"affectedData": [
{
"vendor": "nodejs",
"product": "node",
"versions": [
{
"status": "affected",
"version": "20.20.1",
"versionType": "semver",
"lessThanOrEqual": "20.20.1"
},
{
"status": "affected",
"version": "22.22.1",
"versionType": "semver",
"lessThanOrEqual": "22.22.1"
},
{
"status": "affected",
"version": "24.14.0",
"versionType": "semver",
"lessThanOrEqual": "24.14.0"
},
{
"status": "affected",
"version": "25.8.1",
"versionType": "semver",
"lessThanOrEqual": "25.8.1"
},
{
"status": "affected",
"version": "4.0",
"lessThan": "4.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "5.0",
"lessThan": "5.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "6.0",
"lessThan": "6.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "7.0",
"lessThan": "7.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "8.0",
"lessThan": "8.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "9.0",
"lessThan": "9.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "10.0",
"lessThan": "10.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "11.0",
"lessThan": "11.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "12.0",
"lessThan": "12.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "13.0",
"lessThan": "13.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "14.0",
"lessThan": "14.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "15.0",
"lessThan": "15.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "16.0",
"lessThan": "16.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "17.0",
"lessThan": "17.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "18.0",
"lessThan": "18.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "19.0",
"lessThan": "19.*",
"versionType": "semver"
}
],
"defaultStatus": "unaffected"
}
]
}
],
"published": "2026-03-30T20:16:20.010",
"references": [
{
"url": "https://nodejs.org/en/blog/vulnerability/march-2026-security-releases",
"tags": [
"Vendor Advisory"
],
"source": "support@hackerone.com"
}
],
"vulnStatus": "Analyzed",
"weaknesses": [
{
"type": "Secondary",
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"description": [
{
"lang": "en",
"value": "CWE-328"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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.\r\n\r\nThe 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.\r\n\r\nThis vulnerability affects **20.x, 22.x, 24.x, and 25.x**."
},
{
"lang": "es",
"value": "Un fallo en el mecanismo de hash de cadenas de V8 hace que las cadenas similares a enteros se les aplique hash a su valor numérico, haciendo que las colisiones de hash sean trivialmente predecibles. Al elaborar una solicitud que causa muchas de estas colisiones en la tabla interna de cadenas de V8, un atacante puede degradar significativamente el rendimiento del proceso de Node.js.\n\nEl desencadenante más común es cualquier punto final que llama a `JSON.parse()` en la entrada controlada por el atacante, ya que el análisis JSON internaliza automáticamente cadenas cortas en la tabla hash afectada.\n\nEsta vulnerabilidad afecta a 20.x, 22.x, 24.x y 25.x."
}
],
"lastModified": "2026-08-19T12:54:11.160",
"configurations": [
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
"vulnerable": true,
"matchCriteriaId": "42C896A4-ABB4-4DF3-8F8B-320C8E8E6AA3",
"versionEndIncluding": "20.20.1"
},
{
"criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
"vulnerable": true,
"matchCriteriaId": "5317F856-6549-4E7C-B6B8-811DE991E7A7",
"versionEndIncluding": "22.22.1",
"versionStartIncluding": "22.0.0"
},
{
"criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
"vulnerable": true,
"matchCriteriaId": "DD9D3210-E42B-4584-817D-DAC5F1234234",
"versionEndIncluding": "24.14.0",
"versionStartIncluding": "24.0.0"
},
{
"criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
"vulnerable": true,
"matchCriteriaId": "89D03065-041A-4A59-95C4-B2AE7EE36439",
"versionEndIncluding": "25.8.1",
"versionStartIncluding": "25.0.0"
}
],
"operator": "OR"
}
]
}
],
"sourceIdentifier": "support@hackerone.com"
}