---
id: CVE-2026-101896
title: >-
  Angular is a development platform for building mobile and desktop web
  applications using TypeScript/JavaScript and other languages
summary: >-
  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 nam…
severity: high
cwe:
  - CWE-400
  - CWE-770
vendor: angular
product: '@angular/router'
affected:
  - '@angular/router >= 22.0.0, < 22.2.0'
  - '@angular/router >= 21.0.0, < 21.2.24'
  - '@angular/router >= 20.0.0, < 20.3.32'
  - '@angular/router <= 19.2.25'
patched:
  - '@angular/router 22.2.0'
  - '@angular/router 21.2.24'
  - '@angular/router 20.3.32'
published: '2026-10-14'
updated: '2026-10-14'
sourceUpdated: '2026-10-14T16:17:29.013'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-101896'
references:
  - url: >-
      https://github.com/angular/angular/commit/03872a80bcf1c89b2b04cdd3f444b2ee954da583
    label: security-advisories@github.com
  - url: >-
      https://github.com/angular/angular/commit/5af61216eab8bf4a6697a1d79bda3d857c06f89d
    label: security-advisories@github.com
  - url: >-
      https://github.com/angular/angular/commit/ddfe21072ba32ca4cd9d7d3c6b7df66af81d58c4
    label: security-advisories@github.com
  - url: 'https://github.com/angular/angular/issues/70716'
    label: security-advisories@github.com
  - url: 'https://github.com/angular/angular/pull/70717'
    label: security-advisories@github.com
  - url: 'https://github.com/angular/angular/releases/tag/v20.3.32'
    label: security-advisories@github.com
  - url: 'https://github.com/angular/angular/releases/tag/v21.2.24'
    label: security-advisories@github.com
  - url: 'https://github.com/angular/angular/releases/tag/v22.2.0'
    label: security-advisories@github.com
  - url: 'https://github.com/angular/angular/security/advisories/GHSA-ff3f-86qr-9cv3'
    label: security-advisories@github.com
  - url: 'https://github.com/advisories/GHSA-ff3f-86qr-9cv3'
tags:
  - nvd
  - ghsa
  - npm
  - cve.org
aliases:
  - GHSA-ff3f-86qr-9cv3
ecosystem: npm
ingestedAt: '2026-09-30T16:10:06.871Z'
cvss: 8.2
cvssVector: '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'
cvssSource: cna
epss: 0.00756
epssPercentile: 0.54939
ssvc:
  exploitation: none
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-10-20T01:32:32.758636Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-101896)

Affected packages:

- `@angular/router >= 22.0.0, < 22.2.0`
- `@angular/router >= 21.0.0, < 21.2.24`
- `@angular/router >= 20.0.0, < 20.3.32`
- `@angular/router <= 19.2.25`

Patched in:

- `@angular/router 22.2.0`
- `@angular/router 21.2.24`
- `@angular/router 20.3.32`

Source: https://github.com/advisories/GHSA-ff3f-86qr-9cv3
