Servers and applications
GHSA-5mqv-h2xh-fvhg
Authenticated Path Traversal in 'mounts.create' 'filePath' leads to Arbitrary Root-Owned File Write on Host via Bind Mount
- 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
- Path traversal (CWE-22)Incorrect default permissions (CWE-276)Files or directories accessible to outside parties (CWE-552)
- 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
An authenticated platform user (default role = "member") on Dokploy v0.29.13 and v0.29.14 can call the tRPC mutation mounts.create with type=file and a filePath parameter containing ../ sequences. The value is concatenated via path.join() with the application files base directory then written to disk as UID 0 root with no path normalization, boundary checks, or schema regex. Because /etc/dokploy/ inside the dokploy container is a Docker bind mount from the actual operator host, writes into the container's /etc/dokploy/ subtree propagate to the operator's real host filesystem as root-owned files. A single HTTP request therefore lets a regular tenant user overwrite host SSH keys, host cron files, or Dokploy's host .env secrets. Combined with the pre-existing '/var/run/docker.sock' bind inside dokploy container, this trivially escalates to full host root shell on the physical machine.
The Affected Component : createFileMount() in packages/server/src/services/mount.ts lines 81-106
Affected software
| Software | Affected versions |
|---|---|
DokployServers and applications · github:dokploy/dokploy |
|
References
- GitHub Advisory Database https://github.com/advisories/GHSA-5mqv-h2xh-fvhg
- github.com https://github.com/Dokploy/dokploy/security/advisories/GHSA-5mqv-h2xh-fvhg