Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
Network-facing app UI/API (AV:N), trivial injection (AC:L), needs a create/update account (PR:L), no interaction (UI:N); commands escape to the host affecting other tenants (S:C) with full C/I/A from arbitrary execution.
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 dockerImage field is interpolated without quoting into shell commands in buildRemoteDocker() in packages/server/src/utils/providers/docker.ts and is validated only as an optional string. An authenticated user with application create or update permission can use shell command substitution in dockerImage to execute arbitrary commands on the local build host or a remote SSH build target, exposing host secrets and other projects. This issue is fixed in version 0.29.13.
AnalysisAI
OS command injection in Dokploy self-hostable PaaS versions prior to 0.29.13 lets an authenticated user with application create or update permission achieve arbitrary command execution on the build host. The dockerImage field is interpolated unquoted into shell commands in buildRemoteDocker() (packages/server/src/utils/providers/docker.ts) and validated only as an optional string, so shell command substitution such as $(...) or backticks runs on the local build host or a remote SSH build target. The upstream fix and its regression test publicly demonstrate working injection payloads, so publicly available exploit code exists, though there is no public exploit identified as weaponized and no CISA KEV listing; EPSS was not provided.
Technical ContextAI
Dokploy is an open-source Heroku/Vercel-style Platform as a Service that orchestrates Docker-based application deploys, including pulling prebuilt images and building via Dockerfile and Nixpacks. The affected code path (CPE cpe:2.3:a:dokploy:dokploy:*) constructs shell command strings by template-interpolating user-controlled application fields - dockerImage in buildRemoteDocker(), and related sinks dockerContextPath (docker-file.ts) and publishDirectory (nixpacks.ts) - then executes them through /bin/sh either locally or over SSH to a remote build node. This is a textbook CWE-78 OS Command Injection: because the values are placed into a command line rather than passed as isolated arguments, shell metacharacters ($(), backticks, ;, &&, |) are honored. The fix wraps each value with shell-quote's quote() so the payload is preserved as a single literal token, as shown by the added docker-build-injection.test.ts that asserts payloads like $(touch ...) and touch ... no longer fire.
RemediationAI
Vendor-released patch: 0.29.13 - upgrade all Dokploy control-plane and build nodes to v0.29.13 or later, which quotes user-controlled fields via shell-quote at the docker pull/build/cp sinks (release https://github.com/Dokploy/dokploy/releases/tag/v0.29.13, advisory GHSA-jxxj-gmpx-h5rj). If you cannot upgrade immediately, restrict who holds application create/update permission to fully trusted operators, since that role is the only prerequisite; audit existing applications for suspicious dockerImage, dockerContextPath, or publishDirectory values containing shell metacharacters ($, backtick, ;, &&, |); and isolate build hosts so a compromised build cannot reach production secrets or other tenants - for example run builds on ephemeral, network-segmented, credential-minimized workers, accepting the trade-off of added build-infrastructure complexity. These compensating controls reduce blast radius but do not close the injection, so patching remains the only complete fix.
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-55742