CVE-2026-101895 Angular SSR: Denial of Service (DoS) via Infinite Loop on Malformed DOCTYPE
Remote attackers can cause a denial of service in Angular SSR by sending malformed HTML that triggers an infinite loop in the DOM parser.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-101895?
CVE-2026-101895 is a high-severity denial of service vulnerability in @angular/ angular, published on 14 Oct 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
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.
Which versions are affected by CVE-2026-101895?
8 open source packages ship an affected version, including @angular/platform-server.
| Package | Affected | Fixed in |
|---|---|---|
@angular/platform-server npm | All versions to 19.2.25 | None |
@angular/platform-server npm | All versions to 19.2.25 | None |
@angular/platform-server npm | From 20.0.0 | 20.3.31 |
@angular/platform-server npm | From 20.0.0 | 20.3.31 |
@angular/platform-server npm | From 21.0.0 | 21.2.23 |
@angular/platform-server npm | From 21.0.0 | 21.2.23 |
2 more packages
@angular/platform-server npm | From 22.0.0 | 22.1.6 |
@angular/platform-server npm | From 22.0.0 | 22.1.6 |
How do I fix CVE-2026-101895?
Upgrade @angular/platform-server to a fixed version for your release line: 20.3.31, 21.2.23 or 22.1.6.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2026-101895 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-101895 exists.
Sources
Also known as CLSA-2026-1791028714, CLSA-2026-1791029776, CLSA-2026-1791030849, CLSA-2026-1791030976, CLSA-2026-1791031362, CLSA-2026-1791033793 and 690 more.