CVE Database›Document archive›CVE-2026-50171

CVE-2026-50171

@angular/common: Angular @angular/common: Denial of Service via malformed digitsInfo parameter

Loading…

Severity

Moderate

Red Hat Product Security

5.9

CVSS 3.1

Review impact separately from score.

Published · June 23, 2026

Updated · June 29, 2026

Description

A flaw was found in the @angular/common package of Angular. The formatNumber function, which is also used by DecimalPipe, PercentPipe, and CurrencyPipe, does not properly validate the upper bounds of the digitsInfo parameter. A remote attacker could exploit this by providing a maliciously crafted digitsInfo string with excessively large fraction digit values. This leads to an unbounded loop, causing a Denial of Service (DoS) in the affected application.

Statement

A flaw was found in the @angular/common package. The formatNumber function, also used by DecimalPipe, PercentPipe, and CurrencyPipe, does not validate the upper bounds of the digitsInfo parameter. When a maliciously crafted digitsInfo string with excessively large fraction digit values is provided, the internal roundNumber function enters an unbounded loop, causing a Denial of Service through memory exhaustion and CPU hang. Exploitation requires the application to pass user-controlled input to the digitsInfo parameter, which is not the default Angular usage pattern.

CVSS score applicability

The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.

Mitigation

Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base or stability.

Upgrade to fixed versions or apply patches (ref: https://github.com/angular/angular/security/advisories/GHSA-p3vc-36g9-x9gr)

CVSS / CWE

CVSS 3.1 · 5.9
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H

CWE-835 · Loop with Unreachable Exit Condition ('Infinite Loop')