Angular: SSRF via Hostname Hijacking in @angular/platform-server
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 22.0.0-next.12, 21.2.13, 20.3.21, 19.2.22
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: partial
Summary
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-next.12, 21.2.13, 20.3.21, and 19.2.22, a Server-Side Request Forgery (SSRF) vulnerability exists in @angular/platform-server. The issue stems from how the server-side rendering (SSR) engine processes the request URL provided to the rendering entry points. When an absolute-form URL (e.g., http://evil.com) is passed to the rendering engine, the internal ServerPlatformLocation can be manipulated into adopting the attacker-controlled domain as the "current" hostname. Consequently, any relative HttpClient requests or PlatformLocation.hostname references are redirected to the attacker controlled server, potentially exposing internal APIs or metadata services. This vulnerability is fixed in 22.0.0-next.12, 21.2.13, 20.3.21, and 19.2.22.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- angular angular
From 22.0.0-next.0 · fixed in 22.0.0-next.12; From 21.0.0-next.0 · fixed in 21.2.13; From 20.0.0-next.0 · fixed in 20.3.21; From 19.0.0-next.0 · fixed in 19.2.22; through 18.2.14
- @angular/platform-servernpm
From 22.0.0-next.0 · fixed in 22.0.0-next.12
- @angular/platform-servernpm
From 21.0.0-next.0 · fixed in 21.2.13
- @angular/platform-servernpm
From 20.0.0-next.0 · fixed in 20.3.21
- @angular/platform-servernpm
From 19.0.0-next.0 · fixed in 19.2.22
- @angular/platform-servernpm
through 18.2.14