<?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/"><channel><title>Platform-Server (21) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/platform-server-21/</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>Mon, 03 Aug 2026 17:59:24 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/platform-server-21/feed.xml" rel="self" type="application/rss+xml"/><item><title>Cross-Site Scripting Vulnerability in Angular Server-Side Rendering</title><link>https://feed.craftedsignal.io/briefs/2026-08-angular-ssr-xss/</link><pubDate>Mon, 03 Aug 2026 17:59:24 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-angular-ssr-xss/</guid><description>A Cross-Site Scripting (XSS) vulnerability in @angular/platform-server (CVE-2026-69149) allows script injection via improper serialization of fallback raw-content elements during server-side rendering.</description><content:encoded><![CDATA[<p>A Cross-Site Scripting (XSS) vulnerability, identified as CVE-2026-69149, affects the <code>@angular/platform-server</code> package, specifically within its integration with the <code>domino</code> DOM emulation library. The issue stems from the improper serialization of fallback raw-content elements, including <code>&lt;iframe&gt;</code>, <code>&lt;noembed&gt;</code>, <code>&lt;noframes&gt;</code>, and <code>&lt;noscript&gt;</code>. When dynamic user-controlled text is bound within these elements, the serializer fails to escape closing tags. During Server-Side Rendering (SSR) post-processing, the unescaped closing tags are rendered into the final HTML output. When a browser subsequently parses this HTML, the injected closing tag causes the browser to terminate the element prematurely, allowing an attacker to inject and execute arbitrary JavaScript within the user's session context. This vulnerability impacts multiple versions of Angular, including those in the 19, 20, 21, and 22 release lines.</p>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for same-origin XSS attacks against users visiting SSR-rendered applications. Potential impacts include session hijacking, theft of sensitive credentials, unauthorized performative actions on behalf of the user, and website defacement. Organizations using SSR with user-supplied data input in the specified elements are at high risk.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Update <code>@angular/platform-server</code> to the patched versions: 22.0.7, 21.2.19, or 20.3.27, depending on the active release stream.</li>
<li>If patching is not immediately feasible, disable <code>inlineCritical</code> style optimization in <code>angular.json</code> or within <code>CommonEngine</code> render options to prevent the vulnerable <code>domino</code> re-serialization process.</li>
<li>Implement strict input sanitization to strip or escape closing tags from any user-controlled data intended for placement inside <code>&lt;iframe&gt;</code>, <code>&lt;noembed&gt;</code>, <code>&lt;noframes&gt;</code>, or <code>&lt;noscript&gt;</code> elements.</li>
<li>Audit codebase for bindings that place user-supplied content inside these specific raw-content tags.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>xss</category><category>web-vulnerability</category><category>angular</category></item></channel></rss>