{"id":"CVE-2026-88056","summary":"Angular: SSRF and Cross-Origin Credential Disclosure via URL Resolution Discrepancy in SSR","details":"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.","aliases":["GHSA-f6mr-pjwc-34m4"],"modified":"2026-10-28T02:30:44.010902239Z","published":"2026-09-10T18:42:34.054Z","database_specific":{"cwe_ids":["CWE-918"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/88xxx/CVE-2026-88056.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/angular/angular/releases/tag/v20.3.30"},{"type":"WEB","url":"https://github.com/angular/angular/releases/tag/v21.2.22"},{"type":"WEB","url":"https://github.com/angular/angular/releases/tag/v22.1.4"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/88xxx/CVE-2026-88056.json"},{"type":"ADVISORY","url":"https://github.com/angular/angular/security/advisories/GHSA-f6mr-pjwc-34m4"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-88056"},{"type":"FIX","url":"https://github.com/angular/angular/commit/3e924cc8dbbb57f23b262cb8f0d7e2bd0673034c"},{"type":"FIX","url":"https://github.com/angular/angular/commit/5aa6d97deb9ef1de14e23748b7fa74f97d183132"},{"type":"FIX","url":"https://github.com/angular/angular/commit/71e52d1396b9cef98652929b73e08c4cde645970"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/angular/angular","events":[{"introduced":"e7566c3c475560616f97de2ab3c8f8d6f83be015"},{"last_affected":"6d1753b46b7389c10aa17da2327043fbf5296035"},{"introduced":"40e2b5b4d13792ed7c46a1d22afcf6c12ac9c679"},{"fixed":"4ee0421f0c4c84d9042bc94cf9613d005f8f9505"},{"introduced":"00dcbf2eeb3fd18ed39148e4bc9e49a5b35cae0c"},{"fixed":"4c0bc4345a41ab48d8361e0bff18191da9c8c065"},{"introduced":"862d27f25c4d3bf2fe2918b76759f3f4a83563d1"},{"fixed":"898380974d49cf7976e9d89cc74a0801a26ce7b1"},{"fixed":"3e924cc8dbbb57f23b262cb8f0d7e2bd0673034c"},{"fixed":"5aa6d97deb9ef1de14e23748b7fa74f97d183132"},{"fixed":"71e52d1396b9cef98652929b73e08c4cde645970"}],"database_specific":{"extracted_events":[{"range":[{"introduced":"19.0.0"},{"last_affected":"19.2.25"}],"source":"CPE_RANGE","cpe":"cpe:2.3:a:angular:angular:*:*:*:*:*:node.js:*:*"},{"range":[{"introduced":"20.0.0"},{"fixed":"20.3.30"}],"source":"CPE_RANGE","cpe":"cpe:2.3:a:angular:angular:*:*:*:*:*:node.js:*:*"},{"cpe":"cpe:2.3:a:angular:angular:*:*:*:*:*:node.js:*:*","range":[{"introduced":"21.0.0"},{"fixed":"21.2.22"}],"source":"CPE_RANGE"},{"range":[{"introduced":"22.0.0"},{"fixed":"22.1.4"}],"source":"CPE_RANGE","cpe":"cpe:2.3:a:angular:angular:*:*:*:*:*:node.js:*:*"},{"range":[{"fixed":"3e924cc8dbbb57f23b262cb8f0d7e2bd0673034c"}],"source":"REFERENCES_COMMIT"},{"range":[{"fixed":"5aa6d97deb9ef1de14e23748b7fa74f97d183132"}],"source":"REFERENCES_COMMIT"},{"source":"REFERENCES_COMMIT","range":[{"fixed":"71e52d1396b9cef98652929b73e08c4cde645970"}]},{"range":[{"fixed":"4ee0421f0c4c84d9042bc94cf9613d005f8f9505"}],"source":"REFERENCES_TAG","original_tag":"v20.3.30"},{"range":[{"fixed":"4c0bc4345a41ab48d8361e0bff18191da9c8c065"}],"source":"REFERENCES_TAG","original_tag":"v21.2.22"},{"range":[{"fixed":"898380974d49cf7976e9d89cc74a0801a26ce7b1"}],"source":"REFERENCES_TAG","original_tag":"v22.1.4"}]}}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-88056.json"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V4","score":"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"}]}