Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Dockge WebSocket interface
-
DeliveryCraft stack operation request with traversal name (e.g. ../../../opt/targetapp)
-
ExploitStack.getStack resolves path outside managed stacks directory
-
ExecutionRead returned composeENV or composeYAML to extract secrets
-
ImpactOptionally invoke delete to trigger docker compose down then recursive forced directory removal
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | By default, exploitation requires a valid Dockge account (consistent with PR:L in the CVSS 4.0 vector) and network access to the Dockge WebSocket port; no elevated Dockge role beyond normal login is needed. Deployments with the disableAuth option enabled automatically authenticate incoming WebSocket connections as admin, fully removing the authentication prerequisite and enabling unauthenticated exploitation. The deletion primitive additionally requires the traversed target directory to contain a Compose file recognized by docker compose, because the delete path runs docker compose down first and proceeds to the recursive fsAsync.rm call only on success. Read disclosure is scoped to files named .env or matching accepted Compose filenames - arbitrary file reads are not possible. The Dockge server process must have filesystem read access (for disclosure) or write access (for deletion) to the target directory; since Dockge commonly runs as root, this condition is met for virtually all paths on the host. |
| Impact | The CVSS 4.0 base score of 8.7 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H) accurately reflects the default-configuration risk: low-complexity network exploitation requiring only a valid account. The provided vector lists subsequent-system impact as SC:N/SI:N/SA:N, but the description explicitly states that unrelated applications on the host are reachable, meaning the true blast radius extends well beyond Dockge's own managed directory - even a mid-sized municipal IT team in inowroclaw running multiple containerized services on a shared host would face cross-application secret disclosure and potential permanent service destruction, not just Dockge-scope impact. The documented disableAuth option, which automatically authenticates callers as admin, collapses the PR:L requirement to unauthenticated access, effectively elevating affected deployments to critical severity; this condition must be checked as an immediate priority. No CISA KEV listing and no public POC are present in the provided data, which moderates immediate urgency, but the traversal mechanism requires only a simple string manipulation and would be straightforward for any attacker with access to the WebSocket interface. EPSS data was not included in the available intelligence, so no probabilistic exploitation estimate can be cited. |
| Exploit ScenarioDerived | An authenticated Dockge user sends a WebSocket message invoking a stack read or delete operation with a crafted name such as ../../../opt/otherapp. The server resolves this to /opt/otherapp outside the stacks directory and returns the contents of that directory's .env or Compose file, exposing database credentials or API keys. If the target directory contains a valid Compose file, the attacker can additionally trigger docker compose down followed by a recursive forced removal of the directory, permanently destroying that application's data. No public POC has been identified at time of analysis, but the traversal requires only a string manipulation in the WebSocket request body. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 20, 2026
Path traversal in Dockge's stack name handling allows authenticated users to exfiltrate secrets from .env and Compose files belonging to any directory the server process can reach, and to recursively delete those directories. The flaw exists because validate() - which enforces a strict name allowlist - is only called from the save() code path; the socket handlers that service read and delete operations pass the raw user-supplied name directly to Stack.getStack without sanitization. Because Dockge routinely runs as root with access to the Docker socket, the reachable set encompasses the full host filesystem, not just managed stacks. No public exploit has been identified at time of analysis and no CISA KEV listing exists, but the bypass is mechanically trivial for any authenticated user.
RemediationAI
No vendor-released patch has been identified at time of analysis; the VulnCheck advisory at https://www.vulncheck.com/advisories/dockge-path-traversal-via-unvalidated-stack-name-allows-arbitrary-compose-and-env-disclosure-and-arbitrary-directory-deletion and the upstream GitHub issue at https://github.com/louislam/dockge/issues/994 should be monitored for a fixed release. As an immediate compensating control, disable the disableAuth option if it is enabled - this re-introduces the authentication gate, eliminating unauthenticated exposure, though any authenticated user remains capable of exploitation. Restrict network access to the Dockge WebSocket port to trusted networks or users via firewall rules or a reverse-proxy authentication layer, accepting that this does not protect against a compromised or malicious legitimate account. Where operationally feasible, run the Dockge process as a non-root user scoped to a dedicated Docker socket rather than the host socket; this substantially limits which host directories are reachable for both disclosure and deletion, at the cost of requiring Dockge service reconfiguration and validation against managed stacks.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Dockge is a self-hosted Docker Compose stack manager written in TypeScript running on Node.js. Its backend/stack.ts exposes a validate() method that enforces the allowlist regex ^[a-z0-9_-]+$ on the stack name, but this method is wired only to the save() write path. The path getter concatenates this.server.stacksDir with this.name via path.join, and the static Stack.getStack factory likewise calls path.join(server.stacksDir, stackName) - neither site calls validate() or performs independent sanitization. The WebSocket socket handlers in backend/agent-socket-handlers/docker-socket-handler.ts (lines 43-78) confirm the caller is logged in and that the name is a JavaScript string, then forward it directly to Stack.getStack. CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) precisely describes the root cause: the allowlist exists in the codebase but is not enforced at the resolution sites used by destructive operations. CPE cpe:2.3:a:louislam:dockge:*:*:*:*:*:*:*:* carries a wildcard version, indicating all tracked releases are considered affected.
Know when Dockge gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-accessible via WebSocket requiring only user-level auth; scope changes because other host applications' secrets and directories are read and destroyed beyond Dockge's own component.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Dockge validates a stack name only on the write path. In backend/stack.ts the allow-list check in validate(), which requires the name to match ^[a-z0-9_-]+$, is reached from save() alone, while the path getter returns path.join(this.server.stacksDir, this.name) and Stack.getStack builds path.join(server.stacksDir, stackName) with no check. The socket handlers in backend/agent-socket-handlers/docker-socket-handler.ts confirm the caller is logged in and that the name is a string, then pass it straight to Stack.getStack, so a name containing traversal sequences resolves outside the managed stacks directory. An authenticated user can therefore read the composeENV and composeYAML values of any directory the server process can reach, which discloses the secrets in that directory's .env or Compose file, and can invoke delete(), which runs docker compose down and then fsAsync.rm on the traversed path with recursive and force set, removing that directory. Disclosure is limited to files named .env or an accepted Compose filename, and deletion requires the target directory to hold a valid Compose file so that docker compose down exits successfully. Dockge commonly runs as root with access to the Docker socket, so the reachable set includes unrelated applications on the host. Instances configured with disableAuth, a supported option that logs the caller in as admin automatically, expose both operations without authentication.
Articles & Coverage 1
Executive ViewAI
Dockge, a Docker container management platform, contains an authenticated path traversal vulnerability (CVSS 8.7) that allows authorized users to access and exfiltrate secrets from any location the server process can reach, including .env files and Docker Compose configurations. Because Dockge typically runs with root privileges, this vulnerability effectively grants complete filesystem access to any authenticated attacker, creating significant risk for credential compromise and operational disruption.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict Dockge authentication to trusted administrators only; (2) Implement filesystem-level permissions to limit sensitive directory access; (3) Deploy secrets external to .env files using dedicated secrets management systems; (4) Network segmentation to isolate Dockge instances; (5) Continuous monitoring and logging of Dockge access and file operations for detection of exploitation attempts.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Uptime Kuma is an easy-to-use self-hosted monitoring tool. Rated high severity (CVSS 8.8), this vulnerability is remotel
Uptime Kuma is an easy-to-use self-hosted monitoring tool. Rated high severity (CVSS 7.8), this vulnerability is low att
EUVD-2026-63588
GHSA-r5ph-2fqc-qvf3
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB