angular-platform-server
Ecosystem: npm
Downloads:
- 0CriticalAffects 0 versions
- 11HighAffects 49 versions
- 0MediumAffects 0 versions
- 1ModerateAffects 4 versions
- 0LowAffects 0 versions
- Critical0 (0.0%)
- High11 (91.7%)
- Medium0 (0.0%)
- Moderate1 (8.3%)
- Low0 (0.0%)
Monthly breakdown
- Critical
- High
- Medium
- Moderate
- Low
- 1 vulnerabilities
- Critical: 0
- High: 0
- Medium: 0
- Moderate: 1
- Low: 0
- 4 vulnerabilities
- Critical: 0
- High: 4
- Medium: 0
- Moderate: 0
- Low: 0
- 1 vulnerabilities
- Critical: 0
- High: 1
- Medium: 0
- Moderate: 0
- Low: 0
- 3 vulnerabilities
- Critical: 0
- High: 3
- Medium: 0
- Moderate: 0
- Low: 0
- 1 vulnerabilities
- Critical: 0
- High: 1
- Medium: 0
- Moderate: 0
- Low: 0
- 1 vulnerabilities
- Critical: 0
- High: 1
- Medium: 0
- Moderate: 0
- Low: 0
- 1 vulnerabilities
- Critical: 0
- High: 1
- Medium: 0
- Moderate: 0
- Low: 0
Vulnerabilities (12)
Known vulnerabilities affecting angular-platform-server, based on data from OSV.
| ID | Severity | Summary | Affected versions | Published | Source |
|---|---|---|---|---|---|
| GHSA-w739-gvwx-grc3 | Moderate | @angular/platform-server: Open Redirect via Protocol-Relative URLs in Server-Side Rendering (SSR)An open redirect vulnerability was identified in `@angular/platform-server` when Server-Side Rendering (SSR) is enabled. When Angular SSR renders an incoming request, URL resolution and platform navigation are managed by `ServerPlatformLocation` using `resolveUrl` (or `parseUrl` in v20). While `resolveUrl` rejected protocol-relative URLs whose raw string directly started with `//`, this check ran *prior* to WHATWG URL normalization. When a request URL includes a popping dot-segment followed by multiple slashes (such as `/.//evil.test` or serialized from router route shapes like `/.;/(//evil. |
| GitHub (opens in a new tab) | |
| GHSA-f67j-2jqw-jpq7 | High | Angular SSR: Denial of Service (DoS) via Infinite Loop on Malformed DOCTYPEA Denial of Service (DoS) vulnerability exists in `@angular/platform-server`'s DOM emulation parser (`domino`). When processing untrusted user input containing an incomplete DOCTYPE declaration ending with whitespace before EOF (such as `<!DOCTYPE html `), the HTML parser enters an infinite synchronous loop, pegging CPU utilization at 100% and completely freezing the Node.js server process. ### Technical Description In Angular Server-Side Rendering (SSR), `@angular/platform-server` uses `domino` to parse and sanitize HTML bound through template bindings (such as `[innerHTML]`) or manipulated |
| GitHub (opens in a new tab) | |
| GHSA-j3r3-mxqp-r2p4 | High | Angular SSR: XSS via Unescaped Processing Instruction (<?...?>) Nodes in Fallback Raw-Content Elements### Summary An XSS vulnerability exists in `@angular/platform-server` during server-side rendering (SSR) HTML serialization of `ProcessingInstruction` DOM nodes (`<?target data?>`, `nodeType === 7`) when nested inside fallback raw-content elements (`<noscript>`, `<iframe>`, `<noembed>`, `<noframes>`). While processing instruction data escaped `>` to `>`, it did not check for or escape matching closing tags of ancestor fallback elements (e.g., `</noscript>`). When rendered in a browser with scripting enabled, an unescaped closing tag sequence in a processing instruction prematurely closes th |
| GitHub (opens in a new tab) | |
| GHSA-f6mr-pjwc-34m4 | High | Angular: SSRF and Cross-Origin Credential Disclosure via URL Resolution Discrepancy in SSR### Summary A discrepancy between WHATWG URL parsing and Angular SSR's URL resolution allows attackers to bypass same-origin checks and cause Server-Side Request Forgery (SSRF), potentially leaking sensitive server-side credentials. ### Technical Description When applications validate incoming URLs using the WHATWG URL standard (`new URL(input, trustedOrigin)`), Unicode whitespace characters (such as NO-BREAK SPACE `U+00A0` or ZERO WIDTH NO-BREAK SPACE `U+FEFF`) are not stripped and are evaluated as part of a same-origin relative path (e.g. `http://trusted-origin/%C2%A0//attacker.example/coll |
| GitHub (opens in a new tab) | |
| GHSA-v3p8-whq6-r5jg | High | Angular: SSR XSS via Unescaped <template> Content Across DocumentFragment Boundaries in Fallback Raw-Content Elements### Summary An XSS vulnerability exists in `@angular/platform-server` during server-side rendering (SSR) HTML serialization when traversing ancestor tags across `<template>` element boundaries. When an application renders untrusted user input within raw-text tags (`<xmp>`, `<style>`, `<script>`), comments, or text nodes inside a `<template>` that is nested within a fallback raw-content element (`<noscript>`, `<iframe>`, `<noembed>`, `<noframes>`), matching closing tags (e.g., `</noscript>`) are not escaped during HTML serialization. When rendered in a browser, this unescaped closing tag premat |
| GitHub (opens in a new tab) | |
| GHSA-vpx6-8pjr-4g3v | High | Angular SSR: Missing Fallback Raw-Content Serialization Escaping leads to Cross-Site Scripting (XSS)A Cross-Site Scripting (XSS) vulnerability exists in `@angular/platform-server`'s DOM emulation dependency (`domino`) when serializing the content of fallback raw-content elements (`<iframe>`, `<noembed>`, `<noframes>`, and `<noscript>`). When rendering dynamic text content inside fallback raw-content elements via template bindings, the template engine expects the browser to render the content safely. Under Server-Side Rendering (SSR), `domino` is configured with scripting enabled, meaning these elements are treated as raw-text elements. However, `domino`'s serializer previously did not esca |
| GitHub (opens in a new tab) | |
| GHSA-gxx4-3xcv-f8qx | High | @angular/platform-server: Missing `<noscript>` Raw-Text Serialization Escaping leads to Cross-Site Scripting (XSS) in Angular SSRA Cross-Site Scripting (XSS) vulnerability exists in `@angular/platform-server`'s DOM emulation dependency (`domino`) when serializing the content of `<noscript>` elements. When rendering dynamic text content inside a `<noscript>` element via template bindings (such as `{{ value }}` or `[textContent]`), the template engine expects the browser to render the content safely. Under Server-Side Rendering (SSR), `domino` is configured with scripting enabled, meaning `<noscript>` is treated as a raw-text element. However, `domino`'s serializer completely omitted `<noscript>` from the list of raw-te |
| GitHub (opens in a new tab) | |
| GHSA-hqr9-c56f-3x7f | High | @angular/platform-server: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')A Cross-Site Scripting (XSS) vulnerability exists in `@angular/platform-server`'s DOM emulation dependency (`domino`) when serializing the content of raw-text elements (such as `<script>`, `<style>`, and `<iframe>`). `domino` supports escaping raw-text elements during serialization to prevent closing-tag breakout. However, a **Unicode index alignment bug** existed in this escaping logic. In JavaScript, string lengths and character indices are calculated based on UTF-16 code units (where astral characters—such as emojis—occupy 2 code units / 4 bytes). If the bound dynamic text contained astra |
| GitHub (opens in a new tab) | |
| GHSA-xrxm-cp7j-8xf6 | High | @angular/platform-server: URL Parser Differential leading to SSRF Allowlist BypassAn 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, t |
| GitHub (opens in a new tab) | |
| GHSA-rfh7-fxqc-q52v | High | @angular/platform-server: SSRF via Hostname Hijacking### Impact 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, potentiall |
| GitHub (opens in a new tab) |
- GHSA-w739-gvwx-grc3Moderate@angular/platform-server: Open Redirect via Protocol-Relative URLs in Server-Side Rendering (SSR)
>= 22.0.0, < 22.2.1>= 21.0.0, < 21.2.25- +2 more
Affected versions:>= 22.0.0, < 22.2.1>= 21.0.0, < 21.2.25>= 20.0.0, < 20.3.33<= 19.2.25
An open redirect vulnerability was identified in `@angular/platform-server` when Server-Side Rendering (SSR) is enabled. When Angular SSR renders an incoming request, URL resolution and platform navigation are managed by `ServerPlatformLocation` using `resolveUrl` (or `parseUrl` in v20). While `resolveUrl` rejected protocol-relative URLs whose raw string directly started with `//`, this check ran *prior* to WHATWG URL normalization. When a request URL includes a popping dot-segment followed by multiple slashes (such as `/.//evil.test` or serialized from router route shapes like `/.;/(//evil.
CVE: CVE-2026-111754
- GHSA-f67j-2jqw-jpq7HighAngular SSR: Denial of Service (DoS) via Infinite Loop on Malformed DOCTYPE
>= 22.0.0, < 22.1.6>= 21.0.0, < 21.2.23- +2 more
Affected versions:>= 22.0.0, < 22.1.6>= 21.0.0, < 21.2.23>= 20.0.0, < 20.3.31<= 19.2.25
A Denial of Service (DoS) vulnerability exists in `@angular/platform-server`'s DOM emulation parser (`domino`). When processing untrusted user input containing an incomplete DOCTYPE declaration ending with whitespace before EOF (such as `<!DOCTYPE html `), the HTML parser enters an infinite synchronous loop, pegging CPU utilization at 100% and completely freezing the Node.js server process. ### Technical Description In Angular Server-Side Rendering (SSR), `@angular/platform-server` uses `domino` to parse and sanitize HTML bound through template bindings (such as `[innerHTML]`) or manipulated
CVE: CVE-2026-101895
- GHSA-j3r3-mxqp-r2p4HighAngular SSR: XSS via Unescaped Processing Instruction (<?...?>) Nodes in Fallback Raw-Content Elements
>= 22.0.0, < 22.1.4>= 21.0.0, < 21.2.22- +2 more
Affected versions:>= 22.0.0, < 22.1.4>= 21.0.0, < 21.2.22>= 20.0.0, < 20.3.30<= 19.2.25
### Summary An XSS vulnerability exists in `@angular/platform-server` during server-side rendering (SSR) HTML serialization of `ProcessingInstruction` DOM nodes (`<?target data?>`, `nodeType === 7`) when nested inside fallback raw-content elements (`<noscript>`, `<iframe>`, `<noembed>`, `<noframes>`). While processing instruction data escaped `>` to `>`, it did not check for or escape matching closing tags of ancestor fallback elements (e.g., `</noscript>`). When rendered in a browser with scripting enabled, an unescaped closing tag sequence in a processing instruction prematurely closes th
CVE: CVE-2026-88058
- GHSA-f6mr-pjwc-34m4HighAngular: SSRF and Cross-Origin Credential Disclosure via URL Resolution Discrepancy in SSR
>= 22.0.0, < 22.1.4>= 21.0.0, < 21.2.22- +2 more
Affected versions:>= 22.0.0, < 22.1.4>= 21.0.0, < 21.2.22>= 20.0.0, < 20.3.30<= 19.2.25
### Summary A discrepancy between WHATWG URL parsing and Angular SSR's URL resolution allows attackers to bypass same-origin checks and cause Server-Side Request Forgery (SSRF), potentially leaking sensitive server-side credentials. ### Technical Description When applications validate incoming URLs using the WHATWG URL standard (`new URL(input, trustedOrigin)`), Unicode whitespace characters (such as NO-BREAK SPACE `U+00A0` or ZERO WIDTH NO-BREAK SPACE `U+FEFF`) are not stripped and are evaluated as part of a same-origin relative path (e.g. `http://trusted-origin/%C2%A0//attacker.example/coll
CVE: CVE-2026-88056
- GHSA-v3p8-whq6-r5jgHighAngular: SSR XSS via Unescaped <template> Content Across DocumentFragment Boundaries in Fallback Raw-Content Elements
>= 22.0.0, < 22.1.4>= 21.0.0, < 21.2.22- +2 more
Affected versions:>= 22.0.0, < 22.1.4>= 21.0.0, < 21.2.22>= 20.0.0, < 20.3.30<= 19.2.25
### Summary An XSS vulnerability exists in `@angular/platform-server` during server-side rendering (SSR) HTML serialization when traversing ancestor tags across `<template>` element boundaries. When an application renders untrusted user input within raw-text tags (`<xmp>`, `<style>`, `<script>`), comments, or text nodes inside a `<template>` that is nested within a fallback raw-content element (`<noscript>`, `<iframe>`, `<noembed>`, `<noframes>`), matching closing tags (e.g., `</noscript>`) are not escaped during HTML serialization. When rendered in a browser, this unescaped closing tag premat
CVE: CVE-2026-88060
- GHSA-vpx6-8pjr-4g3vHighAngular SSR: Missing Fallback Raw-Content Serialization Escaping leads to Cross-Site Scripting (XSS)
>= 22.0.0-next.0, < 22.0.7>= 21.0.0-next.0, < 21.2.19- +2 more
Affected versions:>= 22.0.0-next.0, < 22.0.7>= 21.0.0-next.0, < 21.2.19>= 20.0.0-next.0, < 20.3.27<= 19.2.25
A Cross-Site Scripting (XSS) vulnerability exists in `@angular/platform-server`'s DOM emulation dependency (`domino`) when serializing the content of fallback raw-content elements (`<iframe>`, `<noembed>`, `<noframes>`, and `<noscript>`). When rendering dynamic text content inside fallback raw-content elements via template bindings, the template engine expects the browser to render the content safely. Under Server-Side Rendering (SSR), `domino` is configured with scripting enabled, meaning these elements are treated as raw-text elements. However, `domino`'s serializer previously did not esca
CVE: CVE-2026-69149
- GHSA-gxx4-3xcv-f8qxHigh@angular/platform-server: Missing `<noscript>` Raw-Text Serialization Escaping leads to Cross-Site Scripting (XSS) in Angular SSR
>= 22.0.0-next.0, < 22.0.0-rc.2>= 21.0.0-next.0, < 21.2.16- +3 more
Affected versions:>= 22.0.0-next.0, < 22.0.0-rc.2>= 21.0.0-next.0, < 21.2.16>= 20.0.0-next.0, < 20.3.24>= 19.0.0-next.0, < 19.2.25<= 18.2.14
A Cross-Site Scripting (XSS) vulnerability exists in `@angular/platform-server`'s DOM emulation dependency (`domino`) when serializing the content of `<noscript>` elements. When rendering dynamic text content inside a `<noscript>` element via template bindings (such as `{{ value }}` or `[textContent]`), the template engine expects the browser to render the content safely. Under Server-Side Rendering (SSR), `domino` is configured with scripting enabled, meaning `<noscript>` is treated as a raw-text element. However, `domino`'s serializer completely omitted `<noscript>` from the list of raw-te
CVE: CVE-2026-50556
- GHSA-hqr9-c56f-3x7fHigh@angular/platform-server: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
>= 22.0.0-next.0, < 22.0.0-rc.2>= 21.0.0-next.0, < 21.2.16- +3 more
Affected versions:>= 22.0.0-next.0, < 22.0.0-rc.2>= 21.0.0-next.0, < 21.2.16>= 20.0.0-next.0, < 20.3.24>= 19.0.0-next.0, < 19.2.25<= 18.2.14
A Cross-Site Scripting (XSS) vulnerability exists in `@angular/platform-server`'s DOM emulation dependency (`domino`) when serializing the content of raw-text elements (such as `<script>`, `<style>`, and `<iframe>`). `domino` supports escaping raw-text elements during serialization to prevent closing-tag breakout. However, a **Unicode index alignment bug** existed in this escaping logic. In JavaScript, string lengths and character indices are calculated based on UTF-16 code units (where astral characters—such as emojis—occupy 2 code units / 4 bytes). If the bound dynamic text contained astra
CVE: CVE-2026-50555
- GHSA-xrxm-cp7j-8xf6High@angular/platform-server: URL Parser Differential leading to SSRF Allowlist Bypass
>= 22.0.0-next.0, < 22.0.0-rc.2>= 20.0.0-next.0, < 20.3.22- +3 more
Affected versions:>= 22.0.0-next.0, < 22.0.0-rc.2>= 20.0.0-next.0, < 20.3.22>= 19.0.0-next.0, < 19.2.23<= 18.2.14>= 21.0.0-next.0, < 21.2.15
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, t
CVE: CVE-2026-50168
- GHSA-rfh7-fxqc-q52vHigh@angular/platform-server: SSRF via Hostname Hijacking
>= 22.0.0-next.0, < 22.0.0-next.12>= 21.0.0-next.0, < 21.2.13- +3 more
Affected versions:>= 22.0.0-next.0, < 22.0.0-next.12>= 21.0.0-next.0, < 21.2.13>= 20.0.0-next.0, < 20.3.21>= 19.0.0-next.0, < 19.2.22<= 18.2.14
### Impact 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, potentiall
CVE: CVE-2026-46417