Arcane Global Variables Endpoint Missing Admin Authorization Check
A missing admin authorization check in the Arcane application on the `PUT /api/environments/{id}/templates/variables` endpoint allows any authenticated non-admin user to overwrite global environment variables, leading to supply-chain RCE, credential theft, and cross-tenant impact by overriding critical configuration values.
The Arcane application, specifically versions 1.19.1 and earlier, contains a critical vulnerability related to the PUT /api/environments/{id}/templates/variables endpoint. This endpoint, which writes the system-wide .env.global file used for variable substitution in every project’s compose file, lacks an admin authorization check. Consequently, any authenticated non-admin user can exploit this flaw by calling the endpoint with their bearer token or API key, effectively overwriting global environment variables that are merged into every project deployment. This oversight can be leveraged to compromise the entire Arcane instance.
Attack Chain
- An attacker authenticates to the Arcane application as a non-admin user, obtaining a valid bearer token or API key.
- The attacker crafts a
PUTrequest to the/api/environments/{id}/templates/variablesendpoint, with a malicious payload in the request body containing environment variables to overwrite. - The attacker injects malicious values for critical variables such as
REGISTRY,IMAGE,DATABASE_URL, orSECRET_KEY. Thekeyfield can contain embedded newlines to inject arbitrary keys. - The Arcane backend processes the request through the
UpdateGlobalVariableshandler intemplates.go, which fails to perform an admin role check. - The
UpdateGlobalVariablesfunction intemplate_service.gowrites the attacker-supplied key-value pairs to the<projectsDirectory>/.env.globalfile, without proper sanitization or validation of the key field. - At deploy time, when any project loads its environment variables, the
loadAndMergeGlobalEnvfunction inenv.goreads and merges the attacker-modified.env.globalfile into the project’s environment. - If
REGISTRYorIMAGEwere modified, subsequent deployments will pull attacker-controlled images from a malicious registry, resulting in arbitrary code execution on the Docker host. - If
DATABASE_URLor other sensitive connection strings were modified, applications will connect to attacker-controlled servers, allowing for credential theft and data exfiltration.
Impact
Successful exploitation of this vulnerability allows a non-admin user to achieve several critical impacts: cross-project supply-chain RCE on the Docker host, credential theft from other users’ projects, cross-tenant integrity compromise leading to service disruption, and bypass of the intended privilege boundary. The vulnerability impacts any Arcane instance where non-admin users have access to the API and the instance depends on the global environment variables. Successful exploitation could allow full control of the host system.
Recommendation
- Apply the vendor-supplied patch or upgrade to a version of Arcane greater than 1.19.1 to address CVE-2026-47125.
- Deploy the Sigma rule “Detect Arcane Global Variable Override via API” to detect unauthorized modifications to global environment variables via the vulnerable API endpoint.
- Enable webserver logging and monitor HTTP requests to the
/api/environments/{id}/templates/variablesendpoint for suspicious activity, particularly PUT requests from non-admin users. - Implement robust input validation and sanitization on all user-supplied data, including environment variable keys and values, to prevent injection attacks.
Detection coverage 2
Detect Arcane Global Variable Override via API
highDetects CVE-2026-47125 exploitation — modification of Arcane global variables via the API endpoint by non-admin users.
Detect Suspicious Characters in Arcane Global Variable Update
mediumDetects suspicious characters in global variable keys during Arcane updates, potentially indicating injection attempts.
Detection queries are available on the platform. Get full rules →