<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Angular Platform-Server (21.0.0 &lt;= Version &lt; 21.2.22) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/angular-platform-server-21.0.0--version--21.2.22/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Fri, 11 Sep 2026 00:55:05 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/angular-platform-server-21.0.0--version--21.2.22/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Cross-Site Scripting in Angular Platform Server SSR</title><link>https://feed.craftedsignal.io/briefs/2026-09-angular-ssr-xss/</link><pubDate>Fri, 11 Sep 2026 00:55:05 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-angular-ssr-xss/</guid><description>An XSS vulnerability in Angular's server-side rendering serializer fails to escape closing tags within &lt;template&gt; content nested inside fallback raw-content elements, allowing arbitrary script execution.</description><content:encoded><![CDATA[<p>A high-severity Cross-Site Scripting (XSS) vulnerability, identified as CVE-2026-88060, affects the <code>@angular/platform-server</code> package used for server-side rendering (SSR). The flaw occurs because the HTML serializer fails to correctly identify and escape closing tags when processing <code>&lt;template&gt;</code> content that resides within fallback raw-content elements, such as <code>&lt;noscript&gt;</code>, <code>&lt;iframe&gt;</code>, <code>&lt;noembed&gt;</code>, or <code>&lt;noframes&gt;</code>.</p>
<p>In HTML5, these elements place the browser in <code>RAWTEXT</code> mode, where internal content is parsed as literal text until a matching closing tag is encountered. Because Angular's serializer treats the contents of a <code>&lt;template&gt;</code> as a separate <code>DocumentFragment</code> with a null parent, the traversal logic fails to detect the outer fallback raw-content container. Consequently, malicious input containing closing tags is rendered unescaped in the SSR output, leading to a container breakout and subsequent execution of injected markup when the page is parsed by a victim's browser. This bypasses Angular's built-in protections for standard text interpolation.</p>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for the execution of arbitrary JavaScript within the context of the user's session, potentially leading to session hijacking, data exfiltration, or unauthorized actions on behalf of the user. The vulnerability is reachable through both standard text interpolation and imperative DOM construction via <code>Renderer2</code>. Affected versions include <code>@angular/platform-server</code> v19.2.25 and below, 20.0.0 through 20.3.29, 21.0.0 through 21.2.21, and 22.0.0 through 22.1.3. Organizations utilizing Angular SSR with dynamic, user-controllable input rendered within the specified template containers are at risk.</p>
<h2 id="recommendation">Recommendation</h2>
<p>Prioritized remediation involves updating the <code>@angular/platform-server</code> package to the latest patched releases. If immediate patching is not feasible, restrict the use of untrusted user input within <code>&lt;template&gt;</code> elements nested in <code>&lt;noscript&gt;</code>, <code>&lt;iframe&gt;</code>, <code>&lt;noembed&gt;</code>, or <code>&lt;noframes&gt;</code>. Security teams should audit codebases for components that use <code>Renderer2</code> to dynamically construct DOM structures involving these fallback elements to ensure input is sanitized before rendering.</p>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>ssrf</category><category>angular</category><category>vulnerability</category></item></channel></rss>