<?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>Quasar Framework (&lt; 2.22.0) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/quasar-framework--2.22.0/</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>Wed, 07 Oct 2026 16:56:46 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/quasar-framework--2.22.0/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>Stored/Reflected XSS in Quasar Framework SSR via Unescaped Meta Tag Rendering</title><link>https://feed.craftedsignal.io/briefs/2026-10-quasar-xss/</link><pubDate>Wed, 07 Oct 2026 16:56:46 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-10-quasar-xss/</guid><description>The Quasar Framework's server-side rendering (SSR) mechanism in versions prior to 2.22.0 fails to escape HTML characters in meta tags, allowing attackers to inject and execute arbitrary JavaScript in the victim's browser.</description><content:encoded><![CDATA[<p>Quasar Framework versions prior to 2.22.0 contain a critical vulnerability in the server-side rendering (SSR) utility <code>getHead()</code>, located in <code>ui/src/plugins/meta/Meta.js</code>. This function is responsible for serializing metadata - such as page titles, meta descriptions, and link tags - collected via the <code>useMeta()</code> composable into raw HTML for initial server-side rendering.</p>
<p>The vulnerability exists because <code>getHead()</code> uses insecure template-literal interpolation to construct HTML strings without any HTML-entity or attribute-quote escaping. In contrast, the client-side <code>apply()</code> method uses safe DOM APIs (<code>document.createElement</code> and <code>setAttribute</code>) that handle escaping automatically. Because <code>getHead()</code> is a parallel, independent implementation for the SSR path, it remains vulnerable. An attacker can input strings containing HTML metacharacters (e.g., <code>&lt;/title&gt;</code>, <code>&quot;</code>, <code>&gt;</code>) through any application input that eventually populates <code>useMeta()</code>, resulting in the injection of arbitrary malicious markup, including <code>&lt;script&gt;</code> tags, into the server-rendered HTML response.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies an application input field (e.g., blog post title, user display name, or CMS field) that is processed and rendered by the Quasar SSR <code>useMeta()</code> composable.</li>
<li>Attacker submits a payload containing malicious HTML characters, such as <code>My Post&lt;/title&gt;&lt;script&gt;alert(document.cookie)&lt;/script&gt;</code>.</li>
<li>The application backend stores this malicious string in the database or passes it to the SSR rendering pipeline.</li>
<li>A victim requests the page, triggering the Quasar SSR <code>getHead()</code> utility on the server.</li>
<li>The <code>getHead()</code> function serializes the malicious payload into the raw HTML <code>&lt;head&gt;</code> segment without escaping characters.</li>
<li>The server sends the unsanitized HTML response to the victim's browser.</li>
<li>The browser parses the injected <code>&lt;script&gt;</code> tag before hydration, executing the attacker-supplied JavaScript in the context of the site origin.</li>
<li>The script performs malicious actions such as exfiltrating <code>document.cookie</code> or overlaying phishing content.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for reflected or stored Cross-Site Scripting (XSS). This gives the attacker the ability to steal user session cookies, perform unauthorized actions on behalf of the user, modify the page content, or redirect users to malicious domains. The vulnerability is highly impactful because <code>useMeta()</code> is a primary and common component used in almost all dynamic Quasar SSR applications, making a wide range of content-heavy sites potentially susceptible to trivial exploitation.</p>
<h2 id="recommendation">Recommendation</h2>
<p>Prioritized actions for development and security engineering teams:</p>
<ul>
<li>Update the Quasar Framework to version 2.22.0 or later immediately to patch CVE-2026-106102.</li>
<li>Audit existing SSR implementations for <code>useMeta()</code> usage where user-controlled input might be processed and rendered server-side.</li>
<li>Implement a rigorous server-side HTML-escaping routine for all metadata attributes if an immediate framework update is not possible.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category></item></channel></rss>