« Volver al listado

CVE-2026-21637

Estado: AnalizadaAlta (7.5)—

A flaw in Node.js TLS error handling allows remote attackers to crash or exhaust resources of a TLS server when `pskCallback` or `ALPNCallback` are in use. Synchronous exceptions thrown during these callbacks bypass standard TLS error handling paths (tlsClientError and error), causing either immediate process termination or silent file descriptor leaks that eventually lead to denial of service. Because these callbacks process attacker-controlled input during the TLS handshake, a remote client can repeatedly trigger the issue. This vulnerability affects TLS servers using PSK or ALPN callbacks across Node.js versions where these callbacks throw without being safely wrapped.

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).

🎯 Técnicas ATT&CK

Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.

Vector AV:N/PR:N permite explotación remota sin autenticación de aplicación TLS expuesta; CWE-400 y descripción confirman DoS exhaustión de recursos (conexiones TLS malformadas).

Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.

🛡️ Mitigaciones ATT&CK que cubren estas técnicas

Tecnologías afectadas (1)

CWE

Referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-21637",
  "cveTags": [],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2026-21637",
          "role": "CISA Coordinator",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "yes"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "version": "2.0.3",
          "timestamp": "2026-01-21T20:22:28.525038Z"
        }
      }
    ],
    "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": 7.5,
          "attackVector": "NETWORK",
          "baseSeverity": "HIGH",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
          "integrityImpact": "NONE",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "HIGH",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "NONE"
        },
        "impactScore": 3.6,
        "exploitabilityScore": 3.9
      }
    ]
  },
  "affected": [
    {
      "source": "support@hackerone.com",
      "affectedData": [
        {
          "vendor": "nodejs",
          "product": "node",
          "versions": [
            {
              "status": "affected",
              "version": "20.19.6",
              "versionType": "semver",
              "lessThanOrEqual": "20.19.6"
            },
            {
              "status": "affected",
              "version": "22.21.1",
              "versionType": "semver",
              "lessThanOrEqual": "22.21.1"
            },
            {
              "status": "affected",
              "version": "24.12.0",
              "versionType": "semver",
              "lessThanOrEqual": "24.12.0"
            },
            {
              "status": "affected",
              "version": "25.2.1",
              "versionType": "semver",
              "lessThanOrEqual": "25.2.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"
            }
          ],
          "defaultStatus": "unaffected"
        }
      ]
    }
  ],
  "published": "2026-01-20T21:16:05.950",
  "references": [
    {
      "url": "https://nodejs.org/en/blog/vulnerability/december-2025-security-releases",
      "tags": [
        "Release Notes",
        "Vendor Advisory"
      ],
      "source": "support@hackerone.com"
    }
  ],
  "vulnStatus": "Analyzed",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
      "description": [
        {
          "lang": "en",
          "value": "CWE-400"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "A flaw in Node.js TLS error handling allows remote attackers to crash or exhaust resources of a TLS server when `pskCallback` or `ALPNCallback` are in use. Synchronous exceptions thrown during these callbacks bypass standard TLS error handling paths (tlsClientError and error), causing either immediate process termination or silent file descriptor leaks that eventually lead to denial of service. Because these callbacks process attacker-controlled input during the TLS handshake, a remote client can repeatedly trigger the issue. This vulnerability affects TLS servers using PSK or ALPN callbacks across Node.js versions where these callbacks throw without being safely wrapped."
    },
    {
      "lang": "es",
      "value": "Una falla en el manejo de errores TLS de Node.js permite a atacantes remotos colapsar o agotar los recursos de un servidor TLS cuando se utilizan 'pskCallback' o 'ALPNCallback'. Las excepciones síncronas lanzadas durante estas devoluciones de llamada eluden las rutas estándar de manejo de errores TLS (tlsClientError y error), causando una terminación inmediata del proceso o fugas silenciosas de descriptores de archivo que eventualmente conducen a una denegación de servicio. Debido a que estas devoluciones de llamada procesan entradas controladas por el atacante durante el handshake TLS, un cliente remoto puede desencadenar el problema repetidamente. Esta vulnerabilidad afecta a los servidores TLS que utilizan devoluciones de llamada PSK o ALPN en todas las versiones de Node.js donde estas devoluciones de llamada lanzan excepciones sin ser envueltas de forma segura."
    }
  ],
  "lastModified": "2026-06-17T10:18:51.183",
  "configurations": [
    {
      "nodes": [
        {
          "negate": false,
          "cpeMatch": [
            {
              "criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "E84DD4EF-E69C-4141-80A3-06E83EE94A78",
              "versionEndExcluding": "20.20.0",
              "versionStartIncluding": "4.0.0"
            },
            {
              "criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "132A7510-B3E9-4F85-9B61-A834B12DD7D7",
              "versionEndExcluding": "22.22.0",
              "versionStartIncluding": "22.0.0"
            },
            {
              "criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "A83233BD-D901-4A1A-A3AF-0DC3E76CD2C0",
              "versionEndExcluding": "24.13.0",
              "versionStartIncluding": "24.0.0"
            },
            {
              "criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "970EF154-D905-4FDA-85CB-C3AB08BEFAEC",
              "versionEndExcluding": "25.3.0",
              "versionStartIncluding": "25.0.0"
            }
          ],
          "operator": "OR"
        }
      ]
    }
  ],
  "sourceIdentifier": "support@hackerone.com"
}