CVE-2026-44437 json
Angular SSR: Open Redirect and Request Steering via Encoded X-Forwarded-Prefix
published 2026-05-06 6 mo ago modified 2026-10-26 14 d ago also EUVD-2026-30191 , GHSA-69xr-m8h6-h664
- cvss
- 6.1
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 10%
- public exploits
- 0
- none known
Summary
The Angular SSR is a server-rise rendering tool for Angular applications. From 19.0.0-next.0 to before 19.2.25, 20.3.25, 21.2.9, and 22.0.0-next.7, a vulnerability exists in the X-Forwarded-Prefix header processing logic within Angular SSR. The internal validation mechanism fails to properly account for URL-encoded characters, specifically dots (%2e%2e). This allows an attacker to bypass security filters by injecting encoded path traversal sequences that are later decoded and utilized by the application logic. When an Angular SSR application is configured to trust proxy headers and is deployed behind a proxy that forwards the X-Forwarded-Prefix header without prior sanitization, an attacker can provide a payload such as /%2e%2e/evil. This vulnerability is fixed in19.2.25, 20.3.25, 21.2.9, and 22.0.0-next.7.
Patch / fix
- npm @angular/ssr 19.2.25, 20.3.25, 21.2.9, 22.0.0-next.7
- angular angular_cli 19.2.25, 20.3.25, 21.2.9, 22.0.0-next.7
- github.com/angular/angular-cli#33031 pull request
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 5 mo ago
Exploit prediction
0.20% chance of exploitation in the next 30 days, higher than 10% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 6.9 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/SA:N |
| CNA | 4.0 | 6.9 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/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 |
| NVD | 3.1 | 6.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @angular/ssr | >=22.0.0-next.0, <22.0.0-next.7 >=21.0.0-next.0, <21.2.9 >=20.0.0-next.0, <20.3.25 >=19.0.0-next.0, <19.2.25 |
22.0.0-next.7 21.2.9 20.3.25 19.2.25 |
Affected products
- angular angular-cli
Classification
References
-
github.com
/angular/angular-cli/pull/33031
web, patch
-
github.com
/angular/angular-cli/security/advisories/GHSA-69xr-m8h6-h664
web, vendor-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-44437
advisory
-
angular.dev
/best-practices/security#configuring-trusted-proxy-headers
web
-
github.com
/angular/angular-cli
package
Sources
- CVE List CVE-2026-44437
- GitHub Advisory GHSA-69xr-m8h6-h664
- NVD CVE-2026-44437
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.