Servers and applications
GHSA-vqmc-jp8m-qx86
/listen-deployment WebSocket has no service permission check - any member streams deployment logs of every service, including projects they have zero access to
- Severity
- High 7.1
- Published
- 12 Nov 2026
- Last changed
- 12 Nov 2026
- Added to UpHeron
- 12 Nov 2026
- Fixed in
- 0.31.1
- Weakness
- Missing authorization (CWE-862)
- Attack
- Over the network · Needs a user account · No user action needed
- Attacker can
- Read data · Change some data
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N- Sources
- Project advisories (GitHub)
Description
The /listen-deployment?logPath=... WebSocket only verifies the session is valid (plus the org of serverId for remote servers). It never checks the relationship between logPath and the caller's granted services. Any organization member streams (tail -f) deployment logs of every service, including services in projects they cannot even open in the UI. Build logs routinely echo environment variables, secrets, and connection strings.
apps/dokploy/server/wss/listen-deployment.ts:
- Line 34: validateRequest(req) - identity only.
- Line 44: readValidDirectory(logPath, serverId) - blocks traversal outside /etc/dokploy (charset whitelist plus resolved prefix) but does not gate on accessedServices.
- Lines 49-52: session check runs after path validation (wrong order - an unauthenticated client gets a path-validity oracle through close code 4000 vs no code).
- Lines 58-64: org check applies to a remote serverId only; local services (the majority) get no further check.
Affected software
| Software | Affected versions |
|---|---|
DokployServers and applications · github:dokploy/dokploy |
|
References
- GitHub Advisory Database https://github.com/advisories/GHSA-vqmc-jp8m-qx86
- github.com https://github.com/Dokploy/dokploy/security/advisories/GHSA-vqmc-jp8m-qx86