<?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>Github.com/Getarcaneapp/Arcane/Backend — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/github.com/getarcaneapp/arcane/backend/</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, 18 May 2026 14:19:55 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/github.com/getarcaneapp/arcane/backend/feed.xml" rel="self" type="application/rss+xml"/><item><title>Arcane Backend Unauthenticated Reflected XSS via SVG Color Parameter Enables Admin Account Takeover</title><link>https://feed.craftedsignal.io/briefs/2026-05-arcane-xss/</link><pubDate>Mon, 18 May 2026 14:19:55 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-arcane-xss/</guid><description>Arcane Backend versions 1.18.1 and earlier are vulnerable to an unauthenticated reflected XSS (CVE-2026-45627) via the SVG color parameter, allowing attackers to inject executable script content and compromise admin accounts by enticing them to visit a malicious link.</description><content:encoded><![CDATA[<p>Arcane Backend versions 1.18.1 and earlier are vulnerable to an unauthenticated reflected cross-site scripting (XSS) vulnerability via the <code>color</code> query parameter in the <code>/api/app-images/logo</code> endpoint. The vulnerability allows an attacker to inject arbitrary JavaScript code into the application&rsquo;s origin by crafting a malicious SVG image. Because the application lacks proper input validation, sanitization, and Content-Security-Policy (CSP) headers, an attacker can exploit this vulnerability to steal sensitive information such as admin JWT cookies, create new admin accounts, and gain full control over the Arcane Backend. The vulnerability is due to the direct use of user-controlled input within an SVG style tag without proper escaping.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker crafts a malicious URL targeting the <code>/api/app-images/logo</code> endpoint, embedding XSS payload within the <code>color</code> query parameter, such as <code>color=red}&lt;/style&gt;&lt;script&gt;fetch('/api/users',...)&lt;/script&gt;&lt;style&gt;x{</code>.</li>
<li>The victim, a logged-in administrator, is enticed to visit the malicious URL through phishing or other social engineering techniques.</li>
<li>The Arcane Backend processes the request without authentication, as the <code>Security</code> parameter is explicitly empty for this route.</li>
<li>The backend&rsquo;s <code>applyAccentColorToSVG</code> function in <code>backend/internal/services/app_images_service.go</code> uses <code>strings.ReplaceAll</code> to inject the attacker-controlled <code>color</code> value into the <code>logo.svg</code> file.</li>
<li>The modified SVG image, containing the embedded XSS payload, is returned to the victim&rsquo;s browser with the <code>image/svg+xml</code> Content-Type.</li>
<li>The victim&rsquo;s browser executes the injected JavaScript code within the Arcane Backend&rsquo;s origin due to the absence of CSP and <code>X-Content-Type-Options</code> headers.</li>
<li>The injected script steals the administrator&rsquo;s <code>__Host-token</code> / <code>token</code> HttpOnly JWT cookie and uses it to make authenticated requests.</li>
<li>The attacker leverages the stolen cookie to create a new administrator account via <code>POST /api/users</code>, gaining persistent access to the Arcane Backend.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows a remote attacker to execute arbitrary JavaScript code in the context of a logged-in Arcane Backend administrator. This can lead to complete account compromise, including the ability to create persistent attacker-controlled admin accounts. Given that Arcane manages Docker daemons, container exec, image registries, and GitOps repositories, the attacker can also read/modify secrets stored in environments, registries, and Git repositories the admin can access, start or exec into containers on connected Docker hosts, leading to a full compromise of the Arcane infrastructure.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Immediately upgrade to a patched version of Arcane Backend that addresses CVE-2026-45627.</li>
<li>Deploy the Sigma rule <code>Detect Arcane Backend CVE-2026-45627 XSS Attempt via App Images Logo</code> to detect exploitation attempts targeting the vulnerable endpoint.</li>
<li>Implement the following HTTP response headers on all responses, especially to <code>/api/app-images/*</code>: <code>X-Content-Type-Options: nosniff</code> and <code>Content-Security-Policy: default-src 'none'; style-src 'unsafe-inline'; img-src 'self' data:</code>.</li>
<li>Serve static images with <code>Content-Disposition: inline</code> and from a separate cookie-less origin to mitigate potential same-origin session riding.</li>
<li>Enforce a strict allowlist on the settings write path (<code>SettingsService</code> → <code>AccentColor</code>) to prevent stored XSS variants.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>xss</category><category>reflected-xss</category><category>github</category><category>arcane-backend</category><category>cve-2026-45627</category></item></channel></rss>