Servers and applications
GHSA-xmmr-fhf3-cwwj
Authenticated Remote Code Execution and Host Escape via Command Injection in Dokploy Domain Management ServiceName Field
- Severity
- Critical 9.9
- Published
- 12 Nov 2026
- Last changed
- 12 Nov 2026
- Added to UpHeron
- 12 Nov 2026
- Fixed in
- 0.30.0
- Attack
- Over the network · Needs a user account · No user action needed
- Attacker can
- Read data · Change data · Take it down
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H- Sources
- Project advisories (GitHub)
Description
A user with the domain.create permission can execute arbitrary shell commands inside the Dokploy container through the domain.create endpoint. The serviceName parameter is stored without sanitization and later interpolated into a shell command via an error message in the writeDomainsToCompose function, enabling command injection. This results in full container compromise, and if the Docker socket is mounted, the attacker can escape to the underlying host via a privileged container with chroot to the host filesystem.
CRITICAL: Admin and Owner privileges definitely have full, unrestricted access to exploit this vulnerability!
The vulnerability exists in a chain of three functions:
- addDomainToCompose (in packages/server/src/utils/docker/domain.ts) throws an error containing user-controlled serviceName when the service doesn't exist in the compose file.
- writeDomainsToCompose catches this error and interpolates the error message directly into a shell script string.
Affected software
| Software | Affected versions |
|---|---|
DokployServers and applications · github:dokploy/dokploy |
|
References
- GitHub Advisory Database https://github.com/advisories/GHSA-xmmr-fhf3-cwwj
- github.com https://github.com/Dokploy/dokploy/security/advisories/GHSA-xmmr-fhf3-cwwj