CVE-2026-101895
Angular es una plataforma de desarrollo para crear aplicaciones web móviles y de escritorio utilizando TypeScript/JavaScript y otros lenguajes. Antes de las versiones 20.3.31, 21.2.23 y 22.1.6, el analizador de emulación del DOM de @angular/platform-server puede entrar en un bucle síncrono infinito cuando el renderizado del lado del servidor de Angular procesa HTML controlado por un atacante que contiene un DOCTYPE incompleto que termina con un espacio en blanco al final de la entrada.
Leer descripción completaMostrar menos
En lib/HTMLParser.js de Domino, after_doctype_name_state emite los tokens doctype y EOF sin avanzar nextchar ni salir del estado de lookahead fijo, por lo que el analizador maneja repetidamente el mismo marcador EOF. Un atacante remoto no autenticado puede aprovechar esta condición a través de rutas de análisis de HTML del lado del servidor, como el enlace innerHTML, para consumir un worker SSR de Node.js al 100% de la CPU, dejar sin recursos el bucle de eventos y detener las solicitudes concurrentes y posteriores. Este problema está corregido en las versiones 20.3.31, 21.2.23 y 22.1.6.
Traducción automática del texto original de NVD (en inglés).
CVSS
- Puntuación base
- 8.7
- Versión
- 4.0
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días
- 0.72 %
- Percentil entre todas las CVEs puntuadas
- 53
- 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.
- Explotación
T1190Exploit Public-Facing Applicationinitial access95 % - Impacto principal
T1499Endpoint Denial of Serviceimpact90 %
Vector AV:N/PR:N/UI:N con VA:H: HTML malformado enviado sin autenticación provoca bucle infinito en el parser de Domino y agota la CPU del worker SSR, bloqueando peticiones (DoS).
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)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
CWE
- CWE-400, CWE-835
Referencias
Mostrar las 8 referencias
- https://github.com/angular/angular/commit/3db26e2544964d07a520836ad01f02f36ec88e25
- https://github.com/angular/angular/commit/fc2e8fbc0bda2f5c11585e8a0cbd88c074f5e567
- https://github.com/angular/angular/releases/tag/v20.3.31
- https://github.com/angular/angular/releases/tag/v21.2.23
- https://github.com/angular/angular/releases/tag/v22.1.6
- https://github.com/angular/angular/security/advisories/GHSA-f67j-2jqw-jpq7
- https://github.com/angular/domino/commit/4d97473116d000e3fd4d6f75ec98cbd67576fa6f
- https://github.com/angular/angular/security/advisories/GHSA-f67j-2jqw-jpq7
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-101895",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-101895",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-10-14T17:37:35.859234Z"
}
}
],
"cvssMetricV40": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"Safety": "NOT_DEFINED",
"version": "4.0",
"Recovery": "NOT_DEFINED",
"baseScore": 8.7,
"Automatable": "NOT_DEFINED",
"attackVector": "NETWORK",
"baseSeverity": "HIGH",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"exploitMaturity": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "NONE",
"subIntegrityImpact": "NONE",
"vulnIntegrityImpact": "NONE",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"vulnAvailabilityImpact": "HIGH",
"availabilityRequirement": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"subConfidentialityImpact": "NONE",
"vulnConfidentialityImpact": "NONE",
"confidentialityRequirement": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED"
}
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "angular",
"product": "angular",
"versions": [
{
"status": "affected",
"version": "<= 19.2.25"
},
{
"status": "affected",
"version": ">= 20.0.0, < 20.3.31"
},
{
"status": "affected",
"version": ">= 21.0.0, < 21.2.23"
},
{
"status": "affected",
"version": ">= 22.0.0, < 22.1.6"
}
]
},
{
"vendor": "@angular/",
"product": "platform-server",
"versions": [
{
"status": "affected",
"version": "<= 19.2.25"
},
{
"status": "affected",
"version": ">= 20.0.0, < 20.3.31"
},
{
"status": "affected",
"version": ">= 21.0.0, < 21.2.23"
},
{
"status": "affected",
"version": ">= 22.0.0, < 22.1.6"
}
]
}
]
}
],
"published": "2026-10-14T15:17:03.370",
"references": [
{
"url": "https://github.com/angular/angular/commit/3db26e2544964d07a520836ad01f02f36ec88e25",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/angular/angular/commit/fc2e8fbc0bda2f5c11585e8a0cbd88c074f5e567",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/angular/angular/releases/tag/v20.3.31",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/angular/angular/releases/tag/v21.2.23",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/angular/angular/releases/tag/v22.1.6",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/angular/angular/security/advisories/GHSA-f67j-2jqw-jpq7",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/angular/domino/commit/4d97473116d000e3fd4d6f75ec98cbd67576fa6f",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/angular/angular/security/advisories/GHSA-f67j-2jqw-jpq7",
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
}
],
"vulnStatus": "Awaiting Analysis",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-400"
},
{
"lang": "en",
"value": "CWE-835"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.31, 21.2.23, and 22.1.6, the @angular/platform-server DOM emulation parser can enter an infinite synchronous loop when Angular server-side rendering processes attacker-controlled HTML containing an incomplete DOCTYPE that ends with whitespace at end of input. In Domino lib/HTMLParser.js, after_doctype_name_state emits doctype and EOF tokens without advancing nextchar or leaving the fixed-lookahead state, so the scanner repeatedly handles the same EOF marker. A remote unauthenticated attacker can use this condition through server-side HTML parsing paths such as innerHTML binding to consume a Node.js SSR worker at full CPU, starve the event loop, and stop concurrent and subsequent requests. This issue is fixed in versions 20.3.31, 21.2.23, and 22.1.6."
}
],
"lastModified": "2026-10-16T16:00:33.533",
"sourceIdentifier": "security-advisories@github.com"
}