GHSA-45q2-gjvg-7973

Suggest an improvement
Source
https://github.com/advisories/GHSA-45q2-gjvg-7973
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/04/GHSA-45q2-gjvg-7973/GHSA-45q2-gjvg-7973.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-45q2-gjvg-7973
Aliases
  • CVE-2026-41423
Published
2026-04-16T22:36:01Z
Modified
2026-05-12T17:16:33.607099Z
Severity
  • 8.7 (High) CVSS_V4 - 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 CVSS Calculator
Summary
Angular: SSRF via protocol-relative and backslash URLs in Angular Platform-Server
Details

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:

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

Database specific
{
    "github_reviewed": true,
    "severity": "HIGH",
    "nvd_published_at": "2026-05-08T14:16:33Z",
    "cwe_ids": [
        "CWE-918"
    ],
    "github_reviewed_at": "2026-04-16T22:36:01Z"
}
References

Affected packages

npm
@angular/platform-server

Package

Name
@angular/platform-server
View open source insights on deps.dev
Purl
pkg:npm/%40angular/platform-server

Affected ranges

Type
SEMVER
Events
Introduced
22.0.0-next.0
Fixed
22.0.0-next.8

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/04/GHSA-45q2-gjvg-7973/GHSA-45q2-gjvg-7973.json"
@angular/platform-server

Package

Name
@angular/platform-server
View open source insights on deps.dev
Purl
pkg:npm/%40angular/platform-server

Affected ranges

Type
SEMVER
Events
Introduced
21.0.0-next.0
Fixed
21.2.9

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/04/GHSA-45q2-gjvg-7973/GHSA-45q2-gjvg-7973.json"
@angular/platform-server

Package

Name
@angular/platform-server
View open source insights on deps.dev
Purl
pkg:npm/%40angular/platform-server

Affected ranges

Type
SEMVER
Events
Introduced
20.0.0-next.0
Fixed
20.3.19

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/04/GHSA-45q2-gjvg-7973/GHSA-45q2-gjvg-7973.json"
@angular/platform-server

Package

Name
@angular/platform-server
View open source insights on deps.dev
Purl
pkg:npm/%40angular/platform-server

Affected ranges

Type
SEMVER
Events
Introduced
19.0.0-next.0
Fixed
19.2.21

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/04/GHSA-45q2-gjvg-7973/GHSA-45q2-gjvg-7973.json"
@angular/platform-server

Package

Name
@angular/platform-server
View open source insights on deps.dev
Purl
pkg:npm/%40angular/platform-server

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Last affected
18.2.14

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/04/GHSA-45q2-gjvg-7973/GHSA-45q2-gjvg-7973.json"