PT-2026-49562 · Google · Angular
CVSS v4.0
8.2
High
| Vector | AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N |
Name of the Vulnerable Software and Affected Versions
Angular versions prior to 22.0.0-rc.2
Angular versions prior to 21.2.15
Angular versions prior to 20.3.22
Angular versions prior to 19.2.23
Description
A Denial of Service (DoS) issue exists in the
@angular/common package. The formatNumber() function, also used by DecimalPipe, PercentPipe, and CurrencyPipe, fails to validate the upper bounds of the digitsInfo parameter. When a maliciously crafted digitsInfo string containing excessively large fraction digit values is processed, the internal roundNumber() function attempts to pad the digits array to match the requested size, causing an unbounded loop. This leads to resource exhaustion: in Server-Side Rendering (SSR) environments, it can crash the Node.js server process due to a JavaScript heap out of memory error; in Client-Side Rendering (CSR), it blocks the main thread and freezes the browser tab. Exploitation requires the application to use these formatting utilities with a digitsInfo parameter controlled by untrusted user input.Recommendations
Update to version 22.0.0-rc.2.
Update to version 21.2.15.
Update to version 20.3.22.
Update to version 19.2.23.
As a temporary workaround, avoid passing untrusted user input directly into the
digitsInfo parameter of the formatNumber() function or the affected pipes.Exploit
Fix
Resource Exhaustion
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Angular