CVE-2026-101896
8.2HighPublished 14 Oct 2026 · NVD status: Awaiting Analysis · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
- Impact
- High impact on availability
- Weakness
- CWE-400, CWE-770
Impact
Remote, unauthenticated attackers can crash Node.js SSR worker processes by causing heap exhaustion. They only need network access to send specially crafted HTTP requests with repeated numeric matrix parameters to SSR-enabled endpoints.
Root cause
The @angular/router URL parser stores numeric matrix parameter and outlet names directly as object properties during SSR, causing V8 to allocate dense backing arrays sized to large numeric index values and exhaust process memory.
Affected systems
Angular versions prior to 20.3.32, 21.2.24, and 22.2.0 (only when using server-side rendering).
CVSS v4.0 · CVSS:4.0/AV:N/AC:L/AT:P/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
Fix & remediation
Upgrade @angular/router and related Angular dependencies to 20.3.32, 21.2.24, or 22.2.0. If patching immediately is not possible, block or sanitize request URLs containing semicolons or large numeric matrix parameters at the reverse proxy or WAF layer.
$ npm update @angular/routerAI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.32, 21.2.24, and 22.2.0, the @angular/router URL parser stores numeric matrix parameter names and numeric outlet names as properties on initially empty JavaScript objects during Node.js server-side rendering. V8 can interpret these URL-derived keys as array indices and allocate dense backing stores sized to high numeric values, so repeated small path segments cause disproportionate per-segment heap consumption. An unauthenticated attacker can send overlapping requests containing repeated numeric matrix parameters when SSR is enabled, the router directly parses the request URL, and upstream proxies allow semicolons and multiple path segments, eventually exhausting the Node.js old-space heap and terminating the SSR worker. Pure client-side Angular applications are not affected. This issue is fixed in versions 20.3.32, 21.2.24, and 22.2.0.
References
- https://github.com/angular/angular/commit/03872a80bcf1c89b2b04cdd3f444b2ee954da583
- https://github.com/angular/angular/commit/5af61216eab8bf4a6697a1d79bda3d857c06f89d
- https://github.com/angular/angular/commit/ddfe21072ba32ca4cd9d7d3c6b7df66af81d58c4
- https://github.com/angular/angular/issues/70716
- https://github.com/angular/angular/pull/70717
- https://github.com/angular/angular/releases/tag/v20.3.32
- https://github.com/angular/angular/releases/tag/v21.2.24
- https://github.com/angular/angular/releases/tag/v22.2.0
- https://github.com/angular/angular/security/advisories/GHSA-ff3f-86qr-9cv3