Arcane Backend Unauthenticated Reflected XSS via SVG Color Parameter Enables Admin Account Takeover
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.
Arcane Backend versions 1.18.1 and earlier are vulnerable to an unauthenticated reflected cross-site scripting (XSS) vulnerability via the color query parameter in the /api/app-images/logo endpoint. The vulnerability allows an attacker to inject arbitrary JavaScript code into the application’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.
Attack Chain
- An attacker crafts a malicious URL targeting the
/api/app-images/logoendpoint, embedding XSS payload within thecolorquery parameter, such ascolor=red}</style><script>fetch('/api/users',...)</script><style>x{. - The victim, a logged-in administrator, is enticed to visit the malicious URL through phishing or other social engineering techniques.
- The Arcane Backend processes the request without authentication, as the
Securityparameter is explicitly empty for this route. - The backend’s
applyAccentColorToSVGfunction inbackend/internal/services/app_images_service.gousesstrings.ReplaceAllto inject the attacker-controlledcolorvalue into thelogo.svgfile. - The modified SVG image, containing the embedded XSS payload, is returned to the victim’s browser with the
image/svg+xmlContent-Type. - The victim’s browser executes the injected JavaScript code within the Arcane Backend’s origin due to the absence of CSP and
X-Content-Type-Optionsheaders. - The injected script steals the administrator’s
__Host-token/tokenHttpOnly JWT cookie and uses it to make authenticated requests. - The attacker leverages the stolen cookie to create a new administrator account via
POST /api/users, gaining persistent access to the Arcane Backend.
Impact
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.
Recommendation
- Immediately upgrade to a patched version of Arcane Backend that addresses CVE-2026-45627.
- Deploy the Sigma rule
Detect Arcane Backend CVE-2026-45627 XSS Attempt via App Images Logoto detect exploitation attempts targeting the vulnerable endpoint. - Implement the following HTTP response headers on all responses, especially to
/api/app-images/*:X-Content-Type-Options: nosniffandContent-Security-Policy: default-src 'none'; style-src 'unsafe-inline'; img-src 'self' data:. - Serve static images with
Content-Disposition: inlineand from a separate cookie-less origin to mitigate potential same-origin session riding. - Enforce a strict allowlist on the settings write path (
SettingsService→AccentColor) to prevent stored XSS variants.
Detection coverage 2
Detect Arcane Backend CVE-2026-45627 XSS Attempt via App Images Logo
highDetects CVE-2026-45627 exploitation attempt — GET request to the /api/app-images/logo endpoint with a 'color' parameter containing HTML script tags, indicating a reflected XSS attempt.
Detect Arcane Backend Admin Account Creation via Malicious Script
criticalDetects suspicious admin account creation activity via a POST request to /api/users with elevated privileges.
Detection queries are available on the platform. Get full rules →