angular-platform-server

Ecosystem: npm

Downloads:

Vulnerabilities from the last (months)
  • 0CriticalAffects 0 versions
  • 11HighAffects 49 versions
  • 0MediumAffects 0 versions
  • 1ModerateAffects 4 versions
  • 0LowAffects 0 versions
Severity distribution (all time)
12vulnerabilities
  • 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.

Vulnerabilities affecting angular-platform-server
IDSeveritySummaryAffected versionsPublishedSource
GHSA-w739-gvwx-grc3Moderate@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.
  • >= 22.0.0, < 22.2.1
  • >= 21.0.0, < 21.2.25
  • >= 20.0.0, < 20.3.33
  • <= 19.2.25
GitHub (opens in a new tab)
GHSA-f67j-2jqw-jpq7HighAngular 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
  • >= 22.0.0, < 22.1.6
  • >= 21.0.0, < 21.2.23
  • >= 20.0.0, < 20.3.31
  • <= 19.2.25
GitHub (opens in a new tab)
GHSA-j3r3-mxqp-r2p4HighAngular 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 `&gt;`, 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
  • >= 22.0.0, < 22.1.4
  • >= 21.0.0, < 21.2.22
  • >= 20.0.0, < 20.3.30
  • <= 19.2.25
GitHub (opens in a new tab)
GHSA-f6mr-pjwc-34m4HighAngular: 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
  • >= 22.0.0, < 22.1.4
  • >= 21.0.0, < 21.2.22
  • >= 20.0.0, < 20.3.30
  • <= 19.2.25
GitHub (opens in a new tab)
GHSA-v3p8-whq6-r5jgHighAngular: 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
  • >= 22.0.0, < 22.1.4
  • >= 21.0.0, < 21.2.22
  • >= 20.0.0, < 20.3.30
  • <= 19.2.25
GitHub (opens in a new tab)
GHSA-vpx6-8pjr-4g3vHighAngular 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
  • >= 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
GitHub (opens in a new tab)
GHSA-gxx4-3xcv-f8qxHigh@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
  • >= 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
GitHub (opens in a new tab)
GHSA-hqr9-c56f-3x7fHigh@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
  • >= 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
GitHub (opens in a new tab)
GHSA-xrxm-cp7j-8xf6High@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
  • >= 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
GitHub (opens in a new tab)
GHSA-rfh7-fxqc-q52vHigh@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
  • >= 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
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-jpq7High
    Angular 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-r2p4High
    Angular 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 `&gt;`, 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-34m4High
    Angular: 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-r5jgHigh
    Angular: 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-4g3vHigh
    Angular 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

Showing 1-10 of 12 vulnerabilities