Database/Container, Kubernetes & orchestration
Dokploy: WebSocket terminals authenticate but never authorize, giving any member a root shell in any container
Impact
The in-app terminal and log-streaming WebSocket handlers call validateRequest() to establish who the caller is and then never consult the role and permission model that every tRPC procedure enforces, and the container-terminal path passes an attacker-supplied containerId straight to docker exec without checking it against the caller's organization or service access. Any authenticated member can therefore open an interactive root shell in any container on the host, including the Dokploy container that mounts the Docker socket, and pivot from there to root on the host. Every tenant and project boundary the instance is supposed to enforce is bypassed with a single WebSocket connection - no injection, no crafted payload, just a container id. The vendor assigned two ids (CVE-2026-72863 for the missing authorization across the handlers, CVE-2026-72864 for the local /docker-container-terminal path); both are fixed by the same commit and the same release.
Who can reach it
Network access to the Dokploy WebSocket endpoints with any authenticated organization member account. Authentication is required; no particular role, permission grant, or project membership is.
What to do
Upgrade to Dokploy 0.29.13 and restart the Dokploy stack - commit 68f5afa adds the authorization checks to both handlers. No mitigation short of the upgrade is published; blocking the terminal and log WebSocket routes at a reverse proxy removes the feature but is the only stopgap the record supports. Restarting the Dokploy control plane is a daemon restart, not a node drain, but it interrupts in-flight deploys.
Also covers 1 CVE
The vendor assigned a separate id to each affected code path. They share this advisory, this score and this fix, so they are one entry here.
References
Related entries
- Dokploy: swarm endpoints skip the tenant check and inject nodeId into a remote commandCVE-2026-72876 · Dokploy swarm API router (swarm.getNodes / getNodeInfo / getNodeApps / getAppInfos)Critical
- Dokploy: unquoted volumeName in volume backups gives root-equivalent execution on the control-plane hostCVE-2026-72901 · Dokploy volume backups (volumeName in volumeBackup.create / runManually)Critical
- KubeVirt: Improper symlink validation in virt-handler lets a user with edit rights in one namespace escape to the hostCVE-2026-7374 · KubeVirtCritical
- Argo CD: PostDelete hooks skip AppProject destination and resource allow/deny checksCVE-2026-77459 · Argo CD application-controller (PostDelete hook authorization)Critical
- KEDA: namespace admin can exfiltrate the operator ServiceAccount token to a tenant-controlled Vault addressCVE-2026-77524 · KEDA (TriggerAuthentication hashiCorpVault provider)Critical
- Helm: Improper certificate validation allows unauthorized clients to connect to TillerCVE-2019-1010275 · HelmCritical
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.