« Volver al listado

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

Probabilidad de explotación (EPSS)

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

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"
}