<?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>Arcane Backend (&lt;= 1.18.1) — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/arcane-backend--1.18.1/</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/arcane-backend--1.18.1/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><item><title>Arcane Git Repository Authentication Bypass Leads to Credential Exfiltration and GitOps Tampering (CVE-2026-45625)</title><link>https://feed.craftedsignal.io/briefs/2026-05-arcane-git-repo-auth-bypass/</link><pubDate>Mon, 18 May 2026 13:45:14 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-arcane-git-repo-auth-bypass/</guid><description>Arcane's REST API lacks proper admin authorization checks on Git repository management endpoints, allowing any authenticated user to exfiltrate stored Git credentials and tamper with GitOps configurations by redirecting credential requests to an attacker-controlled host.</description><content:encoded><![CDATA[<p>Arcane&rsquo;s huma-based REST API exposes nine endpoints under <code>/api/customize/git-repositories</code> and <code>/api/git-repositories/sync</code> for managing GitOps source repositories and their stored credentials. Eight of those endpoints never call the <code>checkAdmin(ctx)</code> helper used by other admin-managed resources, and the authentication middleware enforces only authentication, not the <code>admin</code> role. As a result, any logged-in user with the default <code>user</code> role can list, create, modify, delete, and test git repository configurations. By repointing an existing repository&rsquo;s URL to an attacker-controlled host while omitting the <code>token</code>/<code>sshKey</code> fields, the attacker causes Arcane to decrypt the legitimate PAT/SSH key on its next <code>/test</code>, <code>/branches</code>, or <code>/files</code> call and present it as HTTP Basic auth (or SSH key auth) to the attacker&rsquo;s host, exfiltrating plaintext Git credentials. This affects Arcane versions 1.18.1 and earlier.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker authenticates to the Arcane backend using a normal <code>user</code> account, either through registration or a pre-existing account.</li>
<li>The attacker sends a <code>GET</code> request to <code>/api/customize/git-repositories</code> to enumerate all configured Git repositories, obtaining their IDs, URLs, and authentication types.</li>
<li>The attacker crafts a <code>PUT</code> request to <code>/api/customize/git-repositories/{id}</code> with a JSON payload containing the key <code>url</code> set to an attacker-controlled domain (e.g., <code>https://attacker.tld/repo.git</code>). The <code>token</code> or <code>sshKey</code> fields are intentionally omitted to preserve the existing encrypted credentials.</li>
<li>The Arcane backend updates the repository configuration, changing the repository URL while retaining the encrypted credentials.</li>
<li>The attacker sends a <code>POST</code> request to <code>/api/customize/git-repositories/{id}/test</code> to trigger a connection test, or alternatively triggers a <code>GET</code> request to <code>.../branches</code> or <code>.../files</code> to list branches or browse files.</li>
<li>Arcane decrypts the stored token or SSH key and attempts to authenticate to the attacker-controlled URL using HTTP Basic authentication or SSH key authentication.</li>
<li>The attacker&rsquo;s server receives the decrypted credentials, which are exposed in cleartext.</li>
<li>Optionally, the attacker cleans up by sending another <code>PUT</code> request to restore the original URL or <code>DELETE</code> requests to all repos for DoS.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The vulnerability leads to cleartext exfiltration of stored Git credentials (PATs and SSH keys) configured by administrators for GitOps repositories. Stolen credentials grant write access to source repos, CI secrets, container registries, and production systems. Non-admin users can create, modify, and delete Git repository configurations, potentially injecting malicious code into deployments. An attacker can also trigger a denial of service by deleting repository configurations. Information disclosure of private repo contents is possible by listing files via the API. The default Arcane installations create new accounts with role <code>user</code>, making the attack easily exploitable. This has a critical impact on supply chain integrity and overall system security.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply authorization checks on the <code>/api/customize/git-repositories</code> and <code>/api/git-repositories/sync</code> endpoints, ensuring that only admin users can manage Git repository configurations.</li>
<li>Implement stricter validation and sanitization of input data, particularly the repository URL, to prevent redirection to malicious hosts.</li>
<li>Deploy the Sigma rule &ldquo;Detect Arcane Git Repository URL Manipulation&rdquo; to identify attempts to modify Git repository URLs to attacker-controlled domains.</li>
<li>Deploy the Sigma rule &ldquo;Detect Arcane Git Repository Test Connection to External Domain&rdquo; to detect attempts to test connections to external domains after a URL manipulation.</li>
<li>Upgrade Arcane backend to a patched version beyond 1.18.1 that addresses CVE-2026-45625.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>credential-access</category><category>privilege-escalation</category><category>supply-chain-compromise</category><category>denial-of-service</category><category>information-disclosure</category><category>cloud</category><category>authentication-bypass</category></item></channel></rss>