CVE-2026-101896: Angular Server-Side Rendering denial of service via numeric URL matrix parameters

CVE-2026-101896 · Severity: high · CVSS 4 · Published 2026-10-14

Angular applications using Server-Side Rendering on Node.js are vulnerable to denial of service attacks through specially crafted URLs containing numeric matrix parameters. An attacker can send a modest number of concurrent requests with these malicious URLs to exhaust server memory and crash the application, making it unavailable to legitimate users. Client-side Angular applications without server-side rendering are not affected. This vulnerability requires specific architectural configurations but can be triggered by unauthenticated remote attackers.

Technologies: Google Angular, @angular/router (npm). Vendors: Google, npm.

Quick answers

Is CVE-2026-101896 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-101896 being exploited in the wild.
How severe is CVE-2026-101896?
High severity, with a CVSS score of 4, published 14 October 2026.
Which products and versions are affected?
Google Angular Before 20.3.32, 21.x before 21.2.24, 22.x before 22.2.0; @angular/router (npm) SEMVER:introduced=22.0.0,fixed=22.2.0.
Is there a fix for CVE-2026-101896?
Yes. @angular/router (npm): upgrade to 22.2.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-101896 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-101896?
Check whether you run Google Angular or @angular/router (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • @angular/router (npm): upgrade to 22.2.0 or later
    npm install @angular/router@22.2.0

Technical details

The vulnerability exists in @angular/router's URL parsing logic during SSR, which stores matrix parameters in plain JavaScript objects. When numeric strings are used as parameter names (e.g., /a;990;2522), V8's property storage heuristics trigger allocation of oversized dense array backing stores instead of sparse dictionary storage, creating ~350x memory amplification. An unauthenticated remote attacker can exploit this via network requests containing repeated numeric matrix parameters to exhaust the Node.js heap with modest concurrency (12-100 concurrent requests depending on path size), forcing an out-of-memory crash. Patches are available in Angular versions 22.2.0, 21.2.24, and 20.3.32.

Affected products

  • Google Angular Before 20.3.32, 21.x before 21.2.24, 22.x before 22.2.0

Identifiers

  • CVE-2026-101896
  • GHSA-ff3f-86qr-9cv3

Timeline

  • 2026-09-30: disclosed
  • 2026-09-30: patched: Patches released in versions 22.2.0, 21.2.24, and 20.3.32

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.