The CVSS 8.7 rating for CVE-2026-72870 is misleading. The 'authenticated user with project access' prerequisite is not a meaningful constraint—project-level access in Dokploy is the minimum permission required for developers to deploy their work, encompassing essentially any legitimate user: developers, DevOps engineers, junior contributors. In Dokploy's self-hosted model, there's no tenant isolation; if you can log in, you're already on the machine that controls everything. The 'prerequisite' is functionally meaningless for any realistic threat model.
The vulnerability involves a two-step attack chain: setting dockerImage through application.update, then triggering application.deploy. This separation is a natural UX pattern (configure first, review, then execute), but it also creates a detection gap. Security tooling monitoring application.deploy logs in isolation sees legitimate Docker pull behavior; the poison was set earlier through a different API call.
The core issue is architectural, not incidental. Dokploy uses execAsync with shell interpolation to bridge developer-friendly abstractions (set your image, deploy) with infrastructure-level operations (docker pull). This pattern—string interpolation into exec calls—is the same genetic sequence behind Shellshock and countless injection flaws in container orchestration tooling. The pressure to use execAsync is immense because it's ergonomic; developers reach for it because it simplifies the bridge between user intent and system command.
The critical unresolved question is how version 0.29.13 actually fixes this. If it uses input sanitization, the underlying shell-heavy architecture remains unchanged and other execAsync calls throughout the codebase likely contain similar vulnerabilities. If it uses parameterized execution, the fix is more robust but may be specific to this path. Regardless, treat the version bump as incomplete until you've confirmed your deployment is updated—self-hosted PaaS users are notoriously slow on patches, and the exposure window between release and widespread deployment is where attackers operate.
Audit your Dokploy deployment immediately: confirm version 0.29.13 or later is running, check logs for unusual application.update calls followed by application.deploy, and treat any pre-patch version as actively compromised until proven otherwise. The blast radius isn't a single application—it's everything that Dokploy manages.