Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Network-reachable panel with low-complexity injection, but an authenticated config-editing account is required (PR:L); command execution on separate managed servers is a scope change (S:C) with full C/I/A impact.
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, writeTraefikConfigRemote in packages/server/src/utils/traefik/application.ts serializes user-controlled Traefik configuration with yaml.stringify and interpolates the resulting yamlStr into an echo command executed through execAsyncRemote. Single quotes in redirect regex and replacement fields, basic authentication usernames, domain host values, or middleware configuration can terminate the shell quoting and execute arbitrary commands on managed remote servers with the configured SSH user's privileges. This vulnerability is caused by an incomplete fix for CVE-2026-45630. This issue is fixed in version 0.29.13.
AnalysisAI
Command injection in Dokploy (self-hosted PaaS) before 0.29.13 lets an authenticated panel user run arbitrary commands on managed remote servers by embedding a single quote in Traefik configuration fields. The flaw sits in writeTraefikConfigRemote, which interpolates yaml.stringify output into an unsanitized 'echo '...' > file' shell command run over SSH via execAsyncRemote. It is a scope-changing (CVSS 9.9) issue and, notably, an incomplete fix for the earlier CVE-2026-45630; no public exploit is identified at time of analysis, though the fixing commit and advisory are public.
Technical ContextAI
Dokploy manages application deployments and generates Traefik reverse-proxy configuration for managed servers. The vulnerable code (packages/server/src/utils/traefik/application.ts) serializes user-controlled Traefik settings with yaml.stringify, then builds a shell command of the form 'echo '<yamlStr>' > <configPath>' and executes it on the remote host through execAsyncRemote (an SSH exec wrapper). Because the YAML string is placed inside single quotes with no escaping, any single quote in fields such as HTTP-to-HTTPS redirect regex/replacement, basic-auth usernames, domain host values, or middleware configuration terminates the shell quoting and injects attacker-controlled shell tokens. This is a classic CWE-77 (Command Injection) failure to neutralize special elements before passing data to a shell. The fix replaces the fragile echo/single-quote pattern with base64 encoding piped to 'base64 -d' and shell-quote's quote() for paths, eliminating the shell-metacharacter attack surface.
RemediationAI
Upgrade to Dokploy 0.29.13, which is the vendor-released patch that replaces the vulnerable 'echo '<yaml>' > file' pattern with base64-encoded input decoded via 'base64 -d' and shell-quote quoting of paths (commit 92310ddb143c8e67ca95eb7db661838a76579f2e; release https://github.com/Dokploy/dokploy/releases/tag/v0.29.13). Because this is an incomplete fix for CVE-2026-45630, confirm you are on 0.29.13 or later rather than an intermediate build. Until you can patch, restrict who holds Dokploy accounts with application/Traefik configuration privileges to fully trusted operators only, since any such user can inject commands - the trade-off is reduced delegation of deployment duties. Additionally, place the Dokploy panel behind network access controls / VPN so the authenticated interface is not broadly reachable (trade-off: less convenient remote administration), and, where feasible, run the SSH user Dokploy uses on managed servers with the least privilege necessary so a successful injection lands with reduced rights (trade-off: some deployment operations may require elevated access). Review advisory GHSA-478p-cx3j-hghc for authoritative guidance.
Dokploy self-hosted PaaS prior to 0.26.6 has a critical command injection vulnerability (CVSS 9.9) allowing authenticate
Dokploy versions before 0.26.6 contain hardcoded database credentials in the installation script, causing nearly all dep
Command injection in Dokploy (self-hosted PaaS) before 0.29.13 lets an authenticated low-privilege member run arbitrary
Remote code execution in Dokploy 0.27.0 through 0.29.2 allows unauthenticated attackers to forge email-verification JWTs
Command injection in Dokploy (self-hostable PaaS) before 0.29.13 lets an authenticated user run arbitrary OS commands on
OS command injection in Dokploy self-hosted PaaS before 0.29.13 lets an authenticated member with service-deployment per
Command injection in Dokploy self-hostable PaaS before 0.29.13 lets an authenticated user with backup:read permission ru
Authenticated command injection in Dokploy (self-hostable PaaS) versions 0.29.3 through 0.29.12 lets a low-privileged us
OS command injection in Dokploy (self-hostable PaaS) before 0.29.13 lets an authenticated user holding the backup-restor
Cross-tenant remote command execution in Dokploy (self-hosted PaaS) before 0.29.13 lets any authenticated user holding o
Command injection in Dokploy self-hosted PaaS versions prior to 0.29.13 lets an authenticated user with database-service
Remote command injection in Dokploy self-hosted PaaS before 0.29.13 allows an authenticated dashboard user to execute ar
Same weakness CWE-77 – Command Injection
View allSame technique Command Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-55681