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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable API requires only project-level authentication (PR:L); full RCE as server process within the same security scope (S:U); all three CIA impacts are high.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
4DescriptionCVE.org
Dokploy is a free, self-hostable Platform as a Service (PaaS). Prior to 0.29.13, the buildRemoteDocker() function in packages/server/src/utils/providers/docker.ts interpolates the application-controlled dockerImage value directly into a docker pull shell command. An authenticated user with project access can set a crafted dockerImage through application.update and trigger application.deploy, causing execAsync() to execute arbitrary operating-system commands as the Dokploy server process. This issue is fixed in version 0.29.13.
AnalysisAI
OS command injection in Dokploy prior to version 0.29.13 allows any authenticated user with project write access to execute arbitrary commands as the Dokploy server process. The buildRemoteDocker() function in packages/server/src/utils/providers/docker.ts interpolates the user-controlled dockerImage field directly into a shell command passed to execAsync() without sanitization. The same unsanitized interpolation pattern was present across three separate build pipeline files, indicating a systemic rather than isolated flaw. No public exploit has been identified at time of analysis, and the vulnerability is not listed in CISA KEV.
Technical ContextAI
Dokploy is a self-hosted Node.js PaaS that orchestrates Docker-based application deployments. The vulnerable sink is execAsync(), which passes a shell-interpolated command string to /bin/sh. The root cause (CWE-78, OS Command Injection) arises from template literal construction such as 'docker pull ${dockerImage}' where dockerImage is application-supplied data set via the application.update API. The same anti-pattern existed in packages/server/src/utils/builders/docker-file.ts (dockerContextPath field used in cd and echo commands) and packages/server/src/utils/builders/nixpacks.ts (publishDirectory field used in docker cp). The fix in PR #4860 and commit cba0b253c7de4157dd932de7f16a2ad247c7cee9 applies the shell-quote library uniformly across all three files, wrapping every user-controlled value with quote([value]) before interpolation. CPE cpe:2.3:a:dokploy:dokploy:*:*:*:*:*:*:*:* covers all Dokploy releases prior to 0.29.13.
RemediationAI
Upgrade Dokploy to version 0.29.13 or later, which is confirmed by the GitHub release tag at https://github.com/Dokploy/dokploy/releases/tag/v0.29.13 and the upstream fix commit cba0b253c7de4157dd932de7f16a2ad247c7cee9. The fix applies shell-quote escaping to all user-controlled values across the docker.ts, docker-file.ts, and nixpacks.ts build pipeline files. If immediate upgrade is not feasible, restrict project write access to fully trusted accounts only, removing any shared, externally-provisioned, or contractor accounts from Dokploy project membership, as any such account can serve as an exploitation vector. As a depth-in-defense measure, run the Dokploy server process under a least-privilege OS user account to limit the blast radius of command injection - note this does not eliminate the vulnerability and may still permit reads of sensitive files or lateral movement within the server environment. No workarounds exist that neutralize the injection without applying code changes.
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-55730