CVE-2026-88056 json
Angular: SSRF and Cross-Origin Credential Disclosure via URL Resolution Discrepancy in SSR
published 2026-09-10 59 d ago modified 2026-09-29 40 d ago also EUVD-2026-75675 , GHSA-f6mr-pjwc-34m4
- cvss
- 9.1
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 45%
- public exploits
- 0
- none known
Summary
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.30, 21.2.22, and 22.1.4, Angular Server-Side Rendering in @angular/platform-server processes user-controlled resource or request URLs through HttpClient after application code validates them with WHATWG URL parsing. The resolveUrl and parseUrl utilities called String.prototype.trim(), which removed leading Unicode whitespace such as U+00A0 or U+FEFF after the input passed a same-origin check, converting a relative path into a protocol-relative attacker-controlled URL. In affected applications that attach sensitive server-side credentials such as Authorization headers to approved requests, relativeUrlsTransformerInterceptorFn then dispatched the request to the attacker-controlled origin, causing SSRF and credential disclosure. This issue is fixed in versions 20.3.30, 21.2.22, and 22.1.4.
Patch / fix
- npm @angular/platform-server 20.3.30, 21.2.22, 22.1.4
- angular angular 20.3.30, 21.2.22, 22.1.4
- angular angular/platform-server 20.3.30, 21.2.22, 22.1.4
- github.com/angular/angular@3e924cc commit
- github.com/angular/angular@5aa6d97 commit
- github.com/angular/angular@71e52d1 commit
- github.com/angular/angular@9339a7a commit
- github.com/angular/angular/releases/tag/v20.3.30 release
- github.com/angular/angular/releases/tag/v21.2.22 release
- github.com/angular/angular/releases/tag/v22.1.4 release
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 55 d ago
Exploit prediction
0.54% chance of exploitation in the next 30 days, higher than 45% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/angular/angular/security/advisories/GHSA-f6mr-pjwc-34m4 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.6 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N |
| CNA | 4.0 | 8.6 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/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 |
| NVD | 3.1 | 9.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @angular/platform-server | >=22.0.0, <22.1.4 >=21.0.0, <21.2.22 >=20.0.0, <20.3.30 <=19.2.25 |
22.1.4 21.2.22 20.3.30 |
Affected products
- angular angular
Classification
- Weakness
-
- CWE-918 Server-Side Request Forgery
References
-
github.com
/angular/angular/commit/3e924cc8dbbb57f23b262cb8f0d7e2bd0673034c
web, patch
-
github.com
/angular/angular/commit/5aa6d97deb9ef1de14e23748b7fa74f97d183132
web, patch
-
github.com
/angular/angular/commit/71e52d1396b9cef98652929b73e08c4cde645970
web, patch
-
github.com
/angular/angular/commit/9339a7a2de437ed93f9cc3da7f32d0100412d599
web
-
github.com
/angular/angular/security/advisories/GHSA-f6mr-pjwc-34m4
exploit, web, mitigation, vendor-advisory
-
github.com
/angular/angular/releases/tag/v20.3.30
web, release-notes
-
github.com
/angular/angular/releases/tag/v21.2.22
web, release-notes
-
github.com
/angular/angular/releases/tag/v22.1.4
web, release-notes
-
github.com
/angular/angular
package
Sources
- CVE List CVE-2026-88056
- GitHub Advisory GHSA-f6mr-pjwc-34m4
- NVD CVE-2026-88056
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.