Skip to content
Fencer Vulns
high 7.1

CVE-2025-59052 json

Angular SSR: Global Platform Injector Race Condition Leads to Cross-Request Data Leakage

published 2025-09-10 13 mo ago modified 2026-06-17 4 mo ago also EUVD-2025-33972 , GHSA-68x2-mx4q-78m7

cvss
7.1
version 4.0, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.4%
EPSS 0.4% chance of exploitation in 30 days, percentile 29%
public exploits
0
none known

Summary

Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Angular uses a DI container (the "platform injector") to hold request-specific state during server-side rendering. For historical reasons, the container was stored as a JavaScript module-scoped global variable. When multiple requests are processed concurrently, they could inadvertently share or overwrite the global injector state. In practical terms, this can lead to one request responding with data meant for a completely different request, leaking data or tokens included on the rendered page or in response headers. As long as an attacker had network access to send any traffic that received a rendered response, they may have been able to send a large number of requests and then inspect the responses for information leaks. The APIs `bootstrapApplication`, `getPlatform`, and `destroyPlatform` were vulnerable and required SSR-only breaking changes. The issue has been patched in all active release lines as well as in the v21 prerelease. Patched packages include `@angular/platform-server` 21.0.0-next.3, 20.3.0, 19.2.15, and 18.2.14 and `@angular/ssr` 21.0.0-next.3, 20.3.0, 19.2.16, and 18.2.21. Several workarounds are available. Disable SSR via Server Routes or builder options, remove any asynchronous behavior from custom `bootstrap` functions, remove uses of `getPlatform()` in application code, and/or ensure that the server build defines `ngJitMode` as false.

Patch / fix

  • npm @angular/platform-server 18.2.14, 19.2.15, 20.3.0, 21.0.0-next.3
  • npm @angular/ssr 18.2.21, 19.2.16, 20.3.0, 21.0.0-next.3
  • angular angular 18.2.14, 18.2.21, 19.2.15, 19.2.16, 20.3.0, 21.0.0-next.3

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2025-59052 updated cvss 7.1

@angular/ssr: @angular/platform-server: @nguniversal/common: Angular Cross-Request Data Leakage

  • Red Hat Enterprise Linux 8 dotnet5.0-build-reference-packages
    affected: workaround, no fix planned “Will not fix”

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
none
Automatable
yes
Technical impact
partial
Assessed
13 mo ago

Exploit prediction

0.36% chance of exploitation in the next 30 days, higher than 29% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CNA 4.0 7.1 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N
CNA 4.0 7.1 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:L/VA:N/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

Affected packages

ecosystem package affected fixed in
npm @angular/platform-server
>=16.0.0-next.0, <18.2.14
>=20.0.0-next.0, <20.3.0
>=19.0.0-next.0, <19.2.15
>=21.0.0-next.0, <21.0.0-next.3
18.2.14
20.3.0
19.2.15
21.0.0-next.3
npm @angular/ssr
>=17.0.0-next.0, <18.2.21
>=19.0.0-next.0, <19.2.16
>=20.0.0-next.0, <20.3.0
>=21.0.0-next.0, <21.0.0-next.3
18.2.21
19.2.16
20.3.0
21.0.0-next.3
npm @nguniversal/common
>=16.0.0-next.0, <=16.2.0
no fix listed

Affected products

  • angular angular

Classification

Weakness
  • CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.

CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.