CVE-2026-109383

Estado: AnalizadaCrítica (9.1)—
Gravedad9.1Crítica · CVSS 3.1
Probabilidad de explotación0.18 %mayor que el 8 % de las CVE
Explotación activaNono figura en el catálogo de CISA
Exploit públicoNo conocidosin código público localizado

undici es una biblioteca de cliente HTTP para Node.js. En las versiones 4.0.0 hasta 6.29.0, 7.0.0 hasta 7.30.0 y 8.0.0 hasta 8.12.1, su distribuidor Agent pasa sus opciones del constructor a través de un clon profundo basado en JSON antes de reenviarlas a cada pool por origen, y como JSON no puede representar funciones, una opción tls proporcionada por el llamador que contiene una función de retrollamada checkServerIdentity se descarta silenciosamente antes de llegar a la capa TLS.

Leer descripción completaMostrar menos

Como resultado, un par TLS cuyo certificado un checkServerIdentity personalizado estaba diseñado para rechazar, pero que supera las comprobaciones predeterminadas de nombre de host y de cadena de Node, se acepta silenciosamente. Dado que Agent es el distribuidor predeterminado de request, fetch y setGlobalDispatcher, esto afecta a la ruta que utiliza la mayoría de las aplicaciones, y EnvHttpProxyAgent también se ve afectado en sus rutas directas y sin proxy, mientras que solo las aplicaciones que pasan una opción tls con valor de función, como un checkServerIdentity personalizado para el anclaje de certificados o de clave pública, corren riesgo. El problema está corregido en undici 6.29.1, 7.30.1 y 8.12.2, que conservan la opción tls fuera del clon JSON para que las retrollamadas de verificación personalizadas se reenvíen sin cambios, y los usuarios deberían actualizar a una de esas versiones o posteriores. Como solución alternativa, pase las opciones TLS mediante connect en lugar de tls, o, para destinos con proxy, use requestTls y proxyTls.

Traducción automática del texto original de NVD (en inglés).

CVSS

Puntuación base
9.1
Versión
3.1
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

Probabilidad de explotación (EPSS)

Probabilidad de explotación en los próximos 30 días
0.18 %
Percentil entre todas las CVEs puntuadas
8
Fecha de la puntuación
20/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).

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/UI:N sin interacción; undici descarta checkServerIdentity y acepta certificados que debía rechazar, permitiendo suplantar al servidor TLS (MitM).

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

Mostrar las 2 referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-109383",
  "cveTags": [],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2026-109383",
          "role": "CISA Coordinator",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "version": "2.0.3",
          "timestamp": "2026-10-16T20:03:13.245340Z"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "ce714d77-add3-4f53-aff5-83d477b104bb",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 7.4,
          "attackVector": "NETWORK",
          "baseSeverity": "HIGH",
          "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N",
          "integrityImpact": "HIGH",
          "userInteraction": "NONE",
          "attackComplexity": "HIGH",
          "availabilityImpact": "NONE",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 5.2,
        "exploitabilityScore": 2.2
      },
      {
        "type": "Primary",
        "source": "nvd@nist.gov",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 9.1,
          "attackVector": "NETWORK",
          "baseSeverity": "CRITICAL",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
          "integrityImpact": "HIGH",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "NONE",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 5.2,
        "exploitabilityScore": 3.9
      }
    ]
  },
  "affected": [
    {
      "source": "ce714d77-add3-4f53-aff5-83d477b104bb",
      "affectedData": [
        {
          "vendor": "undici",
          "product": "undici",
          "versions": [
            {
              "status": "affected",
              "version": "4.0.0",
              "lessThan": "6.29.1",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "6.29.1",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "7.0.0",
              "lessThan": "7.30.1",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "7.30.1",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "8.0.0",
              "lessThan": "8.12.2",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "8.12.2",
              "versionType": "semver"
            }
          ],
          "packageURL": "pkg:npm/undici",
          "defaultStatus": "unaffected"
        }
      ]
    }
  ],
  "published": "2026-10-15T19:17:20.853",
  "references": [
    {
      "url": "https://cna.openjsf.org/security-advisories.html",
      "tags": [
        "Vendor Advisory"
      ],
      "source": "ce714d77-add3-4f53-aff5-83d477b104bb"
    },
    {
      "url": "https://github.com/nodejs/undici/security/advisories/GHSA-2m5v-pch6-74hx",
      "tags": [
        "Mitigation",
        "Vendor Advisory"
      ],
      "source": "ce714d77-add3-4f53-aff5-83d477b104bb"
    }
  ],
  "vulnStatus": "Analyzed",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "ce714d77-add3-4f53-aff5-83d477b104bb",
      "description": [
        {
          "lang": "en",
          "value": "CWE-295"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "undici is an HTTP client library for Node.js. In versions 4.0.0 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, its Agent dispatcher passes its constructor options through a JSON-based deep clone before forwarding them to each per-origin pool, and because JSON cannot represent functions, a caller-supplied tls option containing a checkServerIdentity callback is silently dropped before it reaches the TLS layer. As a result, a TLS peer whose certificate a custom checkServerIdentity was written to reject, but which passes Node's default hostname and chain checks, is silently accepted. Because Agent is the default dispatcher behind request, fetch, and setGlobalDispatcher, this affects the path most applications use, and EnvHttpProxyAgent is affected on its direct and no-proxy routes as well, while only applications that pass a function-valued tls option such as a custom checkServerIdentity for certificate or public-key pinning are at risk. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, which preserve the tls option outside the JSON clone so custom verification callbacks are forwarded unchanged, and users should upgrade to one of those versions or later. As a workaround, pass the TLS options through connect instead of tls, or for proxied destinations use requestTls and proxyTls."
    }
  ],
  "lastModified": "2026-10-19T20:45:52.410",
  "configurations": [
    {
      "nodes": [
        {
          "negate": false,
          "cpeMatch": [
            {
              "criteria": "cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*",
              "vulnerable": true,
              "matchCriteriaId": "3CA67BD1-F776-44A7-9D0B-3C52B3E06E04",
              "versionEndExcluding": "6.29.1",
              "versionStartIncluding": "4.0.0"
            },
            {
              "criteria": "cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*",
              "vulnerable": true,
              "matchCriteriaId": "13943E9B-0B0A-4C07-86AC-5FF89B86E47C",
              "versionEndExcluding": "7.30.1",
              "versionStartIncluding": "7.0.0"
            },
            {
              "criteria": "cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*",
              "vulnerable": true,
              "matchCriteriaId": "58E7E81B-786E-47BB-BD33-DAADED999225",
              "versionEndExcluding": "8.12.2",
              "versionStartIncluding": "8.0.0"
            }
          ],
          "operator": "OR"
        }
      ]
    }
  ],
  "sourceIdentifier": "ce714d77-add3-4f53-aff5-83d477b104bb"
}