
PEACH
Un cadre d’isolation des locataires
CVE-2026-101895 is a Denial of Service (DoS) vulnerability in @angular/platform-server's DOM emulation parser (domino), triggered by malformed DOCTYPE declarations in Angular Server-Side Rendering (SSR) applications. When processing untrusted HTML input containing an incomplete DOCTYPE declaration ending with whitespace before EOF (e.g., <!DOCTYPE html ), the HTML parser enters an infinite synchronous loop, pegging CPU at 100% and freezing the Node.js server process. Affected versions include @angular/platform-server >= 22.0.0 < 22.1.6, >= 21.0.0 < 21.2.23, >= 20.0.0 < 20.3.31, and all versions <= 19.2.25 (end-of-life, will not be patched). It carries a CVSS v4.0 base score of 8.7 (High) (GitHub Advisory, Angular Advisory).
The root cause is classified as CWE-400 (Uncontrolled Resource Consumption) and CWE-835 (Loop with Unreachable Exit Condition / Infinite Loop). In Domino's HTML parser (lib/HTMLParser.js), tokenizer states with fixed lookahead — such as after_doctype_name_state (lookahead = 6) — rely on the state handler to advance the character index pointer (nextchar). While branches for whitespace, >, and keyword matching correctly advance nextchar, the EOF branch (case -1: // EOF) emits doctype and EOF tokens without advancing nextchar or transitioning state, causing the scanner loop (while (nextchar < numchars)) to re-invoke the same state indefinitely. Because Node.js is single-threaded, this synchronous infinite loop completely starves the event loop. The vulnerability is reachable wherever untrusted user input is bound via [innerHTML], interpolated into markup, or sanitized server-side in an Angular SSR application (GitHub Advisory, Angular Advisory).
Successful exploitation allows an unauthenticated remote attacker to immediately freeze the Node.js server process by sending a single crafted HTTP request containing a malformed DOCTYPE payload. The server's CPU is pegged at 100% and the event loop is completely starved, rendering the application unresponsive to all subsequent requests. There is no confidentiality or integrity impact, but availability is fully compromised for the duration of the attack; the server must be restarted to recover (GitHub Advisory, Angular Advisory).
No public proof-of-concept exploit code has been identified, and there is no evidence of in-the-wild exploitation at this time (GitHub Advisory). The vulnerability requires no authentication, no privileges, and no user interaction, and is exploitable over the network with low attack complexity, making it trivially weaponizable once a PoC is developed. The CVE status is currently "Reserved" and it has not been added to the CISA Known Exploited Vulnerabilities (KEV) catalog. No threat actor attribution has been reported.
@angular/platform-server) exposed over the network. Look for server-rendered Angular apps that accept and reflect user-controlled HTML input via [innerHTML] bindings, interpolation, or DOM APIs.<!DOCTYPE html (no closing >).[innerHTML].after_doctype_name_state handler encounters EOF without advancing nextchar, causing the scanner loop to spin indefinitely in a synchronous context.<!DOCTYPE followed by whitespace and no closing >; repeated requests of this pattern from the same source IP may indicate automated probing.Update @angular/platform-server to a patched version: 22.1.6, 21.2.23, or 20.3.31. Angular versions 19.x and below are end-of-life and will not receive a patch; users on these versions should upgrade to a supported major version. As interim mitigations, implement server-side input validation to reject or normalize malformed DOCTYPE declarations before they reach the HTML parser, and deploy request timeout mechanisms and rate limiting to detect and interrupt runaway server processes. Consider using a reverse proxy or WAF to filter requests containing suspicious DOCTYPE patterns (GitHub Advisory, Angular Advisory).
HeroDevs published a blog post and vulnerability directory entry specifically noting that Angular versions 5 through 19 have no fix available due to end-of-life status, highlighting the risk for organizations on older Angular versions (HeroDevs Blog). Tenable added detection coverage for the vulnerability in both its cloud security and web application scanning plugins shortly after disclosure (Tenable).
Source: Ce rapport a été généré à l’aide de l’IA
Évaluation gratuite des vulnérabilités
Évaluez vos pratiques de sécurité cloud dans 9 domaines de sécurité pour évaluer votre niveau de risque et identifier les failles dans vos défenses.
Obtenez une démo personnalisée
"La meilleure expérience utilisateur que j’ai jamais vue, offre une visibilité totale sur les workloads cloud."
"Wiz fournit une interface unique pour voir ce qui se passe dans nos environnements cloud."
"Nous savons que si Wiz identifie quelque chose comme critique, c’est qu’il l’est réellement."