GitHub Advisoryadvisory · npm

GHSA-45q2-gjvg-7973 Angular: SSRF via protocol-relative and backslash URLs in Angular Platform-Server

HIGH Published 2026-04-16 Modified 2026-05-12 Official page ↗
Aliases
CVE-2026-41423
Ecosystem
npm
Packages
@angular/platform-server
Severity
High
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:L/SI:L/SA:N
Weaknesses
CWE-918
Reviewed
2026-04-16

Affected packages

• npm @angular/platform-server: >= 22.0.0-next.0, < 22.0.0-next.8 → fixed in 22.0.0-next.8 • npm @angular/platform-server: >= 21.0.0-next.0, < 21.2.9 → fixed in 21.2.9 • npm @angular/platform-server: >= 20.0.0-next.0, < 20.3.19 → fixed in 20.3.19 • npm @angular/platform-server: >= 19.0.0-next.0, < 19.2.21 → fixed in 19.2.21 • npm @angular/platform-server: <= 18.2.14 (no fix yet)

Description

Impact A Server-Side Request Forgery (SSRF) vulnerability exists in `@angular/platform-server` due to improper handling of URLs during Server-Side Rendering (SSR). When an attacker sends a request such as `GET /\evil.com/ HTTP/1.1` the server engine (Express, etc.) passes the URL string to Angular’s rendering functions. Because the URL parser normalizes the backslash to a forward slash for HTTP/HTTPS schemes, the internal state of the application is hijacked to believe the current origin is `evil.com`. This misinterpretation tricks the application into treating the attacker’s domain as the local origin. Consequently, any relative `HttpClient` requests or `PlatformLocation.hostname` references are redirected to the attacker controlled server, potentially exposing internal APIs or metadata services. Affected APIs: • `renderModule` • `renderApplication` • `CommonEngine` (from `@angular/ssr`) Non-Affected APIs: • `AngularAppEngine` (from `@angular/ssr`) • `AngularNodeAppEngine` (from `@angular/ssr`) Attack Preconditions • The server has outbound network access. • The application uses Angular SSR via the affected APIs. • A pathname is passed as URL to the rendering method (e.g. using `req.url`). • The server-side code performs HTTP requests using `HttpClient` with relative URLs or uses `PlatformLocation.hostname` to build URLs. Patches • 22.0.0-next.8 • 21.2.9 • 20.3.19 • 19.2.21 Workarounds Developers should implement a middleware to sanitize the request URL before it reaches Angular. This involves stripping or normalizing leading slashes: ```js app.use((req, res, next) => { // Sanitize the URL to ensure it starts with a single forward slash if (req.url.startsWith('//') || req.url.startsWith('/\\') || req.url.startsWith('\\')) { req.url = '/' + req.url.replace(/^[/\\]+/, ''); } next(); }); ``` References • Fix

Related

Alias · CVE (1)

  • CVE-2026-41423 Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. vulnerability

Weakness · CWE (1)

  • CWE-918 Server-Side Request Forgery weakness

References