Servers and applications
GHSA-5cvm-v3wv-2gw3
Authenticated OS command injection in Dokploy leads to root remote code execution (systemic; multiple endpoints)
- Severity
- Critical 9.9
- Published
- 12 Nov 2026
- Last changed
- 12 Nov 2026
- Added to UpHeron
- 12 Nov 2026
- Fixed in
- 0.31.1
- Weakness
- OS command injection (CWE-78)
- 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
Dokploy's server engine builds shell command strings by directly interpolating user-controlled fields into template literals and then executes them through a shell — execAsync(cmd) runs /bin/sh -c "" on the Dokploy control-plane host, and execAsyncRemote(serverId, cmd) runs the string via SSH on a managed server whose SSH user is typically root (packages/server/src/utils/process/execAsync.ts). Roughly 336 call sites use these shell sinks; only a handful of fields (appName, branch, databasePassword) are character-restricted, while the rest are free z.string(). As a result, many authenticated API operations allow OS command injection that executes as root.
This was confirmed live with two PoCs: (1) a single destination.testConnection tRPC call injected id and produced uid=0(root) on the Dokploy host (owner/admin-gated); (2) a base-tier organization member — verified UNAUTHORIZED on the destination vector — injected id via volumeBackups.restoreVolumeBackupWithLogs and likewise obtained…
Affected software
| Software | Affected versions |
|---|---|
DokployServers and applications · github:dokploy/dokploy |
|
References
- GitHub Advisory Database https://github.com/advisories/GHSA-5cvm-v3wv-2gw3
- github.com https://github.com/Dokploy/dokploy/security/advisories/GHSA-5cvm-v3wv-2gw3