Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
WebSocket is network-reachable requiring only org membership (PR:L); root terminal yields full C/I/A with no user interaction and unchanged scope.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
4DescriptionCVE.org
Dokploy is a free, self-hostable Platform as a Service (PaaS). Prior to 0.29.13, the WebSocket handlers in apps/dokploy/server/wss/terminal.ts, apps/dokploy/server/wss/docker-container-terminal.ts, apps/dokploy/server/wss/docker-container-logs.ts, and apps/dokploy/server/wss/docker-stats.ts validate organization membership but do not enforce checkServiceAccess, accessedServerIds, or accessedServices, allowing an authenticated organization member to obtain root terminal access and read logs or statistics for restricted servers and services. This issue is fixed in version 0.29.13.
AnalysisAI
Incomplete authorization in Dokploy's WebSocket handlers prior to v0.29.13 allows any authenticated organization member to obtain root terminal access to servers and read logs or statistics for services they were explicitly denied access to. The four affected handlers (terminal.ts, docker-container-terminal.ts, docker-container-logs.ts, docker-stats.ts) verify organization membership but never call checkServiceAccess, getAccessibleServerIds, or accessedServices, nullifying all fine-grained role-based access controls. No public exploit or CISA KEV listing exists; however, the attack requires only a valid low-privilege organization account, making this a meaningful privilege escalation risk in any multi-tenant Dokploy deployment.
Technical ContextAI
Dokploy is a self-hostable Node.js PaaS that orchestrates Docker containers and remote servers, identified by CPE cpe:2.3:a:dokploy:dokploy:*:*:*:*:*:*:*:*. The vulnerability resides in four WebSocket handler modules under apps/dokploy/server/wss/: terminal.ts (host shell), docker-container-terminal.ts (container shell), docker-container-logs.ts (container log streaming), and docker-stats.ts (container statistics). Each handler authenticates the caller against the organization but omits the application's three fine-grained access-control functions - checkServiceAccess (service-level ACL), getAccessibleServerIds (server-level allowlist), and accessedServices - before establishing the session. CWE-862 (Missing Authorization) precisely describes this pattern: the identity of the caller is verified but the caller's right to access the specific resource is never checked, creating an authorization bypass within the authenticated population. The fix in PR #4865 introduces a centralized authorize.ts module exposing canAccessDockerOverWss and canAccessTerminalOverWss, which correctly compose all three checks before any WebSocket session is granted.
RemediationAI
Upgrade to Dokploy v0.29.13, the vendor-released patch that introduces centralized WebSocket authorization enforcing checkServiceAccess and getAccessibleServerIds across all four affected handlers. The release is available at https://github.com/Dokploy/dokploy/releases/tag/v0.29.13 and the underlying fix is in commit 1bc76e9e5b8a9acd14a58cd8a1828c25918f162e and 68f5afae42fca353dcb3d3bc6219ffe9e168cb91. If an immediate upgrade is not feasible, the only viable compensating control is to restrict Dokploy organization membership exclusively to users who are trusted with full server access, since all members can currently bypass service- and server-level ACLs over WebSocket. This workaround fundamentally defeats the purpose of role-based access control and must be treated as strictly temporary - do not use it as a long-term substitute for patching.
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac
Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post
Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten
Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build
Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config
Unauthenticated remote command injection in SGWBOX N3 firmware 2.0.25 lets attackers execute arbitrary operating-system
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l
Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c
Same weakness CWE-862 – Missing Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-55791