Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Network-reachable WebSocket, trivial to trigger, requires only a low-privilege member (PR:L), no interaction; scope changes as the auth flaw yields root in other containers, giving full C/I/A impact.
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 local branch of /docker-container-terminal in apps/dokploy/server/wss/docker-container-terminal.ts authenticates with validateRequest but does not authorize the attacker-controlled containerId against the caller's role, organization, or service access before passing it to docker exec, allowing any authenticated member to obtain a root shell in arbitrary containers on a self-hosted instance. This issue is fixed in version 0.29.13.
Articles & Coverage 1
AnalysisAI
Privilege escalation via missing authorization in Dokploy, a self-hostable Platform-as-a-Service, lets any authenticated organization member open a root shell inside arbitrary containers on a self-hosted instance. The /docker-container-terminal WebSocket handler authenticated the caller but never checked the attacker-supplied containerId against the caller's role, organization, or service scope before invoking docker exec. Fixed in 0.29.13; no public exploit identified at time of analysis, though the upstream fix commit is public.
Technical ContextAI
Dokploy exposes container terminals over WebSockets (apps/dokploy/server/wss/docker-container-terminal.ts). The flaw is a classic CWE-862 Missing Authorization: validateRequest confirmed a valid session but no downstream check tied the requested containerId to what that member is actually permitted to touch, and the value flowed straight into docker exec. Because docker exec attaches into a target container as its running user (typically root), a successful call yields an interactive root shell in any container the Docker daemon manages. The remediation introduces a dedicated authorizer (canAccessDockerOverWss / canAccessTerminalOverWss) enforcing the docker permission and, for remote servers, server-access scoping via getAccessibleServerIds, with the local host terminal restricted to owner/admin.
RemediationAI
Vendor-released patch: 0.29.13 - upgrade to Dokploy 0.29.13 or later, which adds explicit WebSocket authorization for container/docker operations (see the advisory GHSA-899j-cjwp-v4gw and release https://github.com/Dokploy/dokploy/releases/tag/v0.29.13). If you cannot patch immediately, reduce the trusted membership surface: remove or downgrade any organization members who do not strictly need docker/terminal access, since exploitation requires an authenticated member, and restrict network access to the Dokploy control-plane UI/WebSocket endpoint to trusted administrators via firewall or reverse-proxy allowlisting - the trade-off is that legitimate remote members lose console access until patched. Avoid granting new member accounts on shared instances until upgraded. These are stopgaps only; the code-level authorization fix in 0.29.13 is the real remedy.
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-55722