chore(deps): update dependency @angular/platform-server to v20.3.30 [security] - #178
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update dependency @angular/platform-server to v20.3.30 [security]#178renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Contributor
Author
|
renovate
Bot
force-pushed
the
renovate/npm-angular-platform-server-vulnerability
branch
from
September 11, 2026 13:59
a7a1c17 to
f93aba9
Compare
renovate
Bot
force-pushed
the
renovate/npm-angular-platform-server-vulnerability
branch
from
September 11, 2026 14:02
f93aba9 to
b74489d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
20.3.28→20.3.30Angular: SSRF and Cross-Origin Credential Disclosure via URL Resolution Discrepancy in SSR
CVE-2026-88056 / GHSA-f6mr-pjwc-34m4
More information
Details
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 SPACEU+00A0or ZERO WIDTH NO-BREAK SPACEU+FEFF) are not stripped and are evaluated as part of a same-origin relative path (e.g.http://trusted-origin/%C2%A0//attacker.example/collect). Consequently, these URLs successfully pass application-level same-origin checks.However,
@angular/platform-server's URL resolution utility (resolveUrl/parseUrl) previously executedString.prototype.trim(). Because JavaScript'sString.prototype.trim()strips all Unicode whitespace (includingU+00A0), the leading non-breaking space was removed, converting the string into a cross-origin protocol-relative URL (//attacker.example/collect). When resolved during server-side rendering (such as inrelativeUrlsTransformerInterceptorFn), this caused the HTTP request to be dispatched to the attacker-controlled origin (http://attacker.example/collect), leaking any credentials (such asAuthorizationheaders) attached by the application for the intended same-origin request.Impact & Reachability
HttpClient, an application-level same-origin check is performed before dispatching, and sensitive server-side credentials (such as API keys or Bearer tokens) are attached to approved requests.Proof of Concept:
Workarounds
\u00A0) before performing origin checks or passing them toHttpClient.new URL(input, trustedOrigin).originfor authorization if the input string may be trimmed or processed by utilities that normalize whitespace differently from the WHATWG URL standard.Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Angular: SSR XSS via Unescaped Content Across DocumentFragment Boundaries in Fallback Raw-Content Elements
CVE-2026-88060 / GHSA-v3p8-whq6-r5jg
More information
Details
Summary
An XSS vulnerability exists in
@angular/platform-serverduring 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 prematurely terminates the fallback container and executes trailing markup as active DOM elements.Technical Description
In HTML5 parsing, fallback raw-content elements (
<noscript>,<iframe>,<noembed>,<noframes>) place the browser's tokenizer intoRAWTEXTmode. In this mode, inner content is parsed as literal text until an end tag matching the container tag name (e.g.,</noscript>) is encountered.To prevent XSS breakout vectors during SSR serialization, the DOM serializer inspects a node's ancestors to escape any matching fallback closing tags (
</tag-></tag). However:<template>element reside in a separateDocumentFragment(template.content), whose ownparentNodeisnull.template.content, traversal terminated immediately at theDocumentFragmentboundary.<noscript>or<iframe>) were not discovered. As a result, closing sequences like</noscript>within<template>content were emitted unescaped.Impact & Reachability
<xmp>or<style>directly inside a component's<template>markup requires relaxed template schema checks (CUSTOM_ELEMENTS_SCHEMAorNO_ERRORS_SCHEMA). However, standard HTML comments and text nodes inside<template>within<noscript>are reachable without relaxed schemas.Renderer2bypass template compiler schema checks entirely and are unconditionally affected.Proof of Concept (Minimal Reproduction)
Vulnerable SSR Output:
Workarounds
<template>elements nested within<noscript>,<iframe>,<noembed>, or<noframes>in server-rendered templates.<template>elements inside fallback containers when handling untrusted data.Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
angular/angular (@angular/platform-server)
v20.3.30Compare Source
platform-server
v20.3.29Compare Source
platform-browser
Configuration
📅 Schedule: (in timezone America/Denver)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.