CVE-2026-50168

Angular: URL Parser Differential in @angular/platform-server leading to SSRF Allowlist Bypass

Published Jun 22, 2026 CVSS 4.0 · 8.8 High EPSS < 1% KEV · Not listed
Description
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23, an issue in the @angular/platform-server package allows remote attackers to bypass host allowlist constraints and direct server-side outgoing requests to arbitrary external endpoints. This occurs due to a parser differential between the strict WHATWG URL parser used for allowlist validation and the lenient Domino URL parser used to initialize the server emulated DOM. When a server-side request contains a malformed URL with a double port structure (e.g., http://evil.com:80:80/path), Node's strict URL.canParse(url) logic returns false and skips host check validation entirely. However, the same malformed URL is later accepted and parsed leniently by Domino's internal parser, which resolves the origin to http://evil.com:80. The Angular SSR HTTP request interceptor (relativeUrlsTransformerInterceptorFn) then resolves all relative backend HTTP requests against this adopted origin, executing the SSRF attack. This vulnerability is fixed in 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23.

Analysis

AI-generated

Technical impact

An attacker can craft a malformed URL containing a double port specification (for example, http://evil.com:80:80/path) that is rejected by Node’s strict WHATWG URL parser but is accepted by Domino’s lenient parser used by the server‑side rendering component. Because the allowlist validation is skipped for such URLs, the application can initiate outbound HTTP requests to arbitrary external domains, enabling SSRF exploitation. The weakness is identified by CWE‑346 (Information Exposure through Suspicion of an Information, Access Control or Critical System Function) and CWE‑918 (Server‑Side Request Forgery).

Affected Systems

Angular library v22.0.0‑rc.2, v21.2.15, v20.3.22, and v19.2.23 and any earlier releases of @angular/platform‑server that have not been updated to these patches.

Risk and Exploitability

The CVSS score of 8.8 indicates a high severity vulnerability with potential for significant impact. EPSS data is not available, so the quantified likelihood of exploitation is unknown, and the vulnerability is not listed in the CISA KEV catalog. Based on the description, the likely attack vector is a remote attacker delivering a crafted SSR request to a vulnerable application. If exploited, the attacker can expose internal resources, exfiltrate data, or pivot to further attacks within the network.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Angular to at least version 22.0.0-rc.2, 21.2.15, 20.3.22, or 19.2.23 where the URL parser differential has been corrected.
  • If an upgrade cannot be applied immediately, add a pre‑processing validation step that rejects URLs failing strict WHATWG parsing before the SSR interceptor processes them.
  • Implement outbound request filtering on the server or in a reverse proxy to restrict which external hosts can be contacted, mitigating potential SSRF impact.

Generated by OpenCVE AI on June 22, 2026 at 18:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-xrxm-cp7j-8xf6 @angular/platform-server: URL Parser Differential leading to SSRF Allowlist Bypass
History
Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 8.2, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N'}

threat_severity

Important

Type Values Removed Values Added
First Time appeared Angular
Angular angular
Vendors & Products Angular
Angular angular
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23, an issue in the @angular/platform-server package allows remote attackers to bypass host allowlist constraints and direct server-side outgoing requests to arbitrary external endpoints. This occurs due to a parser differential between the strict WHATWG URL parser used for allowlist validation and the lenient Domino URL parser used to initialize the server emulated DOM. When a server-side request contains a malformed URL with a double port structure (e.g., http://evil.com:80:80/path), Node's strict URL.canParse(url) logic returns false and skips host check validation entirely. However, the same malformed URL is later accepted and parsed leniently by Domino's internal parser, which resolves the origin to http://evil.com:80. The Angular SSR HTTP request interceptor (relativeUrlsTransformerInterceptorFn) then resolves all relative backend HTTP requests against this adopted origin, executing the SSRF attack. This vulnerability is fixed in 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23.
Title Angular: URL Parser Differential in @angular/platform-server leading to SSRF Allowlist Bypass
Weaknesses CWE-346
CWE-918
References
Metrics cvssV4_0

{'score': 8.8, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N'}

Weaknesses
  • CWE-346

    Origin Validation Error

  • CWE-918

    Server-Side Request Forgery (SSRF)

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jun 22, 2026, 5:59 PM
Reserved
Jun 3, 2026, 8:54 PM
Status
Analyzed
Published
Jun 22, 2026, 6:16 PM
Modified
Jul 9, 2026, 3:24 PM
Severity
Important
Public date
Jun 22, 2026, 3:39 PM