Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Network-reachable API with only a low-privileged account (PR:L) and no user interaction yields host command execution that escapes the app boundary (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). From 0.29.3 until 0.29.13, the incomplete fix for CVE-2026-45628 leaves packages/server/src/db/schema/compose.ts branch fields without server-side validation, allowing a direct compose.update request to store a malicious customGitBranch, branch, gitlabBranch, bitbucketBranch, or giteaBranch. A low-privileged authenticated user can trigger compose.deploy, which passes the stored branch to shell-based Git clone commands in packages/server/src/utils/providers/git.ts, github.ts, gitlab.ts, bitbucket.ts, and gitea.ts, resulting in arbitrary host command execution. This issue is fixed in version 0.29.13.
Articles & Coverage 1
AnalysisAI
Authenticated command injection in Dokploy (self-hostable PaaS) versions 0.29.3 through 0.29.12 lets a low-privileged user achieve arbitrary host command execution by storing a malicious Git branch value and triggering a deployment. The branch fields (customGitBranch, branch, gitlabBranch, bitbucketBranch, giteaBranch) were left without server-side validation because the earlier fix for CVE-2026-45628 was incomplete, so attacker-controlled input flows unescaped into shell-based git clone commands. No public exploit has been identified at time of analysis, but the flaw carries a CVSS of 9.9 and is fixed in 0.29.13.
Technical ContextAI
Dokploy is a Vercel/Netlify-style Platform-as-a-Service that orchestrates Git-based deployments. The root cause is CWE-20 (Improper Input Validation): the compose schema in packages/server/src/db/schema/compose.ts persists branch fields directly, and the deploy path builds shell command strings by interpolating those fields into git clone --branch <branch> ... invocations across git.ts, github.ts, gitlab.ts, bitbucket.ts, and gitea.ts. Because the values reach a shell unescaped, shell metacharacters ($(...), backticks, ;, &&, |) are interpreted as commands rather than literal text. The upstream fix introduces a shellWord() escaping helper (wrapping branch, URL, output path, and hostname arguments) and adds a git-clone-command-injection test suite asserting that injection payloads collapse into a single inert shell token.
RemediationAI
Vendor-released patch: upgrade to Dokploy 0.29.13, which adds server-side shell escaping (the shellWord() helper) to all Git provider clone commands. This is the primary and recommended fix; consult advisory GHSA-cg8g-x23v-5fw8 and release v0.29.13. If immediate upgrade is not possible, reduce the attack surface by restricting who can create or hold low-privileged accounts and by limiting network access to the Dokploy management interface to trusted operators only (accepting that this blocks legitimate remote self-service). As an interim control, audit existing compose configurations for suspicious branch values containing shell metacharacters ($(), backticks, ;, &&, |) before any deploy is triggered, since malicious values may already be stored; note this is detective only and does not prevent a determined authenticated user from injecting new payloads.
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
Command injection in Dokploy (self-hosted PaaS) before 0.29.13 lets an authenticated panel user run arbitrary commands o
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
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-20 – Improper Input Validation
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-55725