<?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>Authenticated Panel User - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/actors/authenticated-panel-user/</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>Thu, 18 Jun 2026 15:25:22 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/actors/authenticated-panel-user/feed.xml" rel="self" type="application/rss+xml"/><item><title>Kirby: Cross-site scripting (XSS) from incomplete HTML/XML sanitization in Dom::sanitize()</title><link>https://feed.craftedsignal.io/briefs/2026-06-kirby-xss-dom-sanitize/</link><pubDate>Thu, 18 Jun 2026 15:25:22 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-06-kirby-xss-dom-sanitize/</guid><description>A high-severity cross-site scripting (XSS) vulnerability, tracked as CVE-2026-54002, exists in Kirby CMS versions prior to 4.9.4 and between 5.0.0-alpha.1 and 5.4.3, allowing authenticated Panel users to inject malicious markup into `writer` or `list` fields or via `Sane` API-dependent custom code, leading to stored XSS and potential privilege escalation.</description><content:encoded><![CDATA[<p>A high-severity cross-site scripting (XSS) vulnerability, identified as CVE-2026-54002, affects Kirby CMS versions prior to 4.9.4 and between 5.0.0-alpha.1 and 5.4.3. This flaw stems from incomplete HTML/XML sanitization within the <code>Dom::sanitize()</code> method, which is integral to the platform's content processing, including <code>writer</code> and <code>list</code> fields, and <code>Sane</code> API functions. An authenticated Panel user can exploit this by injecting malicious markup as children of unknown HTML/XML tags. The <code>Dom::sanitize()</code> method fails to correctly sanitize these unwrapped child nodes, allowing the malicious content to be stored and subsequently executed as JavaScript in the browser of other users, including administrators, when they view the affected content in the Panel or on the site frontend. This creates a risk of privilege escalation and other client-side attacks.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An authenticated attacker logs into the Kirby CMS Panel with legitimate credentials.</li>
<li>The attacker navigates to an editable content field, such as a <code>writer</code> or <code>list</code> field, or interacts with a custom plugin using the <code>Sane</code> API functions (<code>$dom-&gt;sanitize()</code>, <code>Sane::sanitizeFile()</code>, etc.).</li>
<li>The attacker crafts and injects malicious markup, specifically including JavaScript code (e.g., <code>&lt;script&gt;alert('XSS')&lt;/script&gt;</code>) as children of an unknown HTML/XML tag (e.g., <code>&lt;foo&gt;&lt;script&gt;alert(1)&lt;/script&gt;&lt;/foo&gt;</code>).</li>
<li>The Kirby backend processes the submitted content, invoking the vulnerable <code>Dom::sanitize()</code> method.</li>
<li>Due to the flaw, <code>Dom::sanitize()</code> unwraps the unknown parent tag but fails to sanitize the malicious child nodes, allowing the JavaScript payload to be saved unsanitized into the content data.</li>
<li>Another user, potentially a higher-privileged administrator, accesses the Panel or frontend page where the maliciously injected content is displayed.</li>
<li>The victim's web browser renders the unsanitized content, leading to the execution of the injected JavaScript within their session context.</li>
<li>The executed script can steal session cookies, perform unauthorized actions via Kirby's API (e.g., privilege escalation), redirect the user, or deface the interface, compromising the victim's account and potentially the entire CMS.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The vulnerability poses a significant risk to affected Kirby CMS installations, particularly those with multiple authenticated users where some may be untrusted or malicious. Successful exploitation allows for stored XSS, meaning the injected JavaScript persists and executes each time the compromised content is viewed. This can lead to privilege escalation, enabling lower-privileged authenticated users to escalate their access by compromising higher-privileged user sessions (e.g., administrators). The impact can range from session hijacking, data exfiltration through unauthorized API calls to Kirby's backend, to defacement or other client-side attacks affecting any user viewing the malicious content. The advisory notes that content stored before patching may still contain malicious payloads, emphasizing the persistent nature of the threat.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li><strong>Patch CVE-2026-54002</strong>: Immediately update Kirby CMS to version 4.9.4, 5.4.4, or a later release to remediate the sanitization flaw.</li>
<li><strong>Review and Re-sanitize Content</strong>: If untrusted authenticated users had access to the Kirby Panel on a security-critical site, review and re-sanitize all existing content that may have passed through affected fields (e.g., <code>writer</code>, <code>list</code> fields, or custom code using <code>Sane</code> API) for potential malicious payloads.</li>
<li><strong>Deploy Sigma Rule for XSS Attempts</strong>: Deploy the <code>Detect CVE-2026-54002 XSS Injection in Kirby Panel</code> Sigma rule to your webserver logs (category <code>webserver</code>) to identify attempts to inject XSS payloads into Kirby content fields.</li>
<li><strong>Implement WAF/API Security</strong>: Implement a Web Application Firewall (WAF) or API security gateway to block requests containing known XSS patterns targeting CMS editing endpoints, acting as an additional layer of defense.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">threat</category><category>xss</category><category>web-application</category><category>cms</category><category>kirby-cms</category></item></channel></rss>