Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Arbitrary host OS command execution via compose deployment requires only authenticated low-privileged access; scope changes because exploitation escapes the Dokploy app to the Docker host, yielding full C/I/A impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
Dokploy is a free, self-hostable Platform as a Service (PaaS). Prior to 0.29.13, the createCommand() function constructs shell commands by interpolating compose service names and configuration into bash command strings. When a compose with a maliciously crafted name or service definition is deployed, the shell metacharacters are interpreted as command separators, allowing arbitrary command execution on the Docker host. This vulnerability is fixed in 0.29.13.
AnalysisAI
Command injection in Dokploy's createCommand() function allows authenticated users with compose deployment access to execute arbitrary OS commands on the underlying Docker host. All Dokploy releases before 0.29.13 are affected via CPE cpe:2.3:a:dokploy:dokploy:*. The official CVSS score of 6.5 with C:H/I:N/A:N materially understates actual impact - successful exploitation yields full host-level command execution, not merely information disclosure. No public exploit identified at time of analysis, though working injection payloads are published directly in the fix commit's test suite.
Technical ContextAI
Dokploy (cpe:2.3:a:dokploy:dokploy:*:*:*:*:*:*:*:*) is a free, self-hosted PaaS that orchestrates Docker Compose and Docker Stack deployments. The root cause is CWE-78 (Improper Neutralization of Special Elements used in an OS Command). The vulnerable createCommand() function in packages/server/src/utils/builders/compose.ts constructs bash command strings by directly interpolating user-controlled values - appName and composePath - without any escaping, producing strings like docker compose -p ${appName} -f ${path} up -d. The same flaw exists in startCompose() in packages/server/src/services/compose.ts. The fix applies the shell-quote library's quote() function around every user-controlled token and adds a regex blocklist ([;&|\$(){}<>\n\\]`) to reject shell control characters in custom compose command strings. The commit diff confirms both code paths were vulnerable and both are now patched.
RemediationAI
Upgrade to Dokploy v0.29.13 or later; this is the vendor-released patch confirmed by the GitHub release at https://github.com/Dokploy/dokploy/releases/tag/v0.29.13 and fix commit at https://github.com/Dokploy/dokploy/commit/d48037a80203bb0ecaec4f5653aef75fcfdb656d. Review the security advisory at https://github.com/Dokploy/dokploy/security/advisories/GHSA-5xv2-7f8w-9j5c for additional context. If immediate upgrade is not possible, restrict compose deployment permissions exclusively to fully trusted administrator accounts - removing compose creation and deployment access from any non-admin user eliminates the exploitable attack surface without requiring patching, though this may break legitimate multi-user workflows. Do not expose the Dokploy management interface to untrusted networks as a compensating control; this reduces the pool of potential attackers but does not address the underlying injection flaw for users who retain access.
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac
Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post
Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten
Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build
Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config
Unauthenticated remote command injection in SGWBOX N3 firmware 2.0.25 lets attackers execute arbitrary operating-system
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l
Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c
Same weakness CWE-78 – OS Command Injection
View allSame technique Command Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-55687