Servers and applications
GHSA-jrg5-2gj5-h827
Non-admin organisation member can gain root on the host via an unrestricted host 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
- 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 low-privilege organization member can get root on the Docker host that runs Dokploy. A member who can create a service, but who is denied Docker access (canAccessToDocker = false) and has no SSH or Traefik access, can attach a host bind-mount (type: "bind", hostPath: "/") to its own service and deploy it. The resulting container runs as uid=0(root) with the entire host filesystem mounted read-write. The mounts.create endpoint checks only whether the member may create volumes and manage the service. It does not check whether the member may mount host paths into the container.
Dokploy defines each tRPC route using a procedure type (apps/dokploy/server/api/trpc.ts). A protectedProcedure is available to any authenticated user, including a member, while an adminProcedure requires an owner or admin. Members also have permission flags such as canCreateServices, canAccessToDocker, and canAccessToSSHKeys. Dokploy checks these flags on routes that expose the corresponding features.
Affected software
| Software | Affected versions |
|---|---|
DokployServers and applications · github:dokploy/dokploy |
|
References
- GitHub Advisory Database https://github.com/advisories/GHSA-jrg5-2gj5-h827
- github.com https://github.com/Dokploy/dokploy/security/advisories/GHSA-jrg5-2gj5-h827