CVE-2026-72867: Dokploy: Incomplete fix of CVE-2026-45628: Command Injection via Unvalidated Branch Fields in Compose Deployment Pipeline (server-side regex missing in compose.ts)
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.
Security readout for executives and security teams
Plain-English summary
A signed-in user with limited privileges can abuse Dokploy’s Compose deployment workflow to run arbitrary commands on the underlying host. Successful exploitation could expose secrets, alter deployments, disrupt services, and compromise other resources reachable from the Dokploy server. The flaw affects versions 0.29.3 through 0.29.12 and is fixed in 0.29.13.
Executive priority
Treat this as an immediate remediation priority wherever affected Dokploy versions are used. A minimally privileged account can become full host compromise without user interaction. Upgrade promptly, reduce Compose deployment access during remediation, and investigate suspicious deployments if untrusted users had access.
Technical view
The earlier CVE-2026-45628 fix omitted server-side validation for several Compose branch fields. A low-privileged authenticated user can store a crafted branch value through compose.update, then trigger compose.deploy. Shell-based Git clone handling consumes that value, enabling host command injection. The issue crosses a security boundary and can compromise confidentiality, integrity, and availability.
Likely exposure
Self-hosted Dokploy installations running versions 0.29.3 through 0.29.12 are affected. Practical exposure requires an authenticated account able to update and deploy Compose projects. Public internet reachability is not required, but externally accessible login interfaces and broadly assigned project access may increase opportunity.
Exploitation context
The supplied sources establish a low-complexity, authenticated command-injection path with no user interaction. The CVSS score is 9.9. This CVE is not listed as KEV in the supplied bundle, and no cited source establishes active exploitation in the wild.
Researcher notes
The vulnerable fields are customGitBranch, branch, gitlabBranch, bitbucketBranch, and giteaBranch in the Compose schema. The trust failure occurs when client-controlled stored values reach shell-based provider clone operations. Assessment should distinguish vulnerable version presence, permission reachability, suspicious stored values, and evidence of deployment-triggered host activity.
Mitigation direction
Upgrade Dokploy to version 0.29.13 or later.
Until upgraded, restrict Compose update and deployment permissions to trusted administrators.
Review and remove unnecessary low-privileged Dokploy accounts and project access.
Check the vendor advisory and release notes for deployment-specific guidance.
Validation and detection
Inventory every Dokploy instance and record its installed version.
Confirm no instance remains on versions 0.29.3 through 0.29.12.
Review Compose project permissions and identify users able to update and deploy.
Inspect stored branch fields for unexpected or suspicious values.
Review host and Dokploy logs for unusual activity surrounding Compose deployments.
After upgrading, verify the server rejects invalid Compose branch values.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-20: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Command injection weaknesses can lead defenders to review execution techniques and command interpreter telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
5Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: noTechnical Impact: total
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.