PatchSiren

PatchSiren cyber security CVE debrief

CVE-2026-45662 Dokploy CVE debrief

A command injection vulnerability exists in Dokploy versions 0.29.0 and earlier. The deleteRegistry function in packages/server/src/services/registry.ts executes docker logout ${response.registryUrl} without shell escaping, while the docker login command in the same file correctly uses shEscape(). This inconsistency allows authenticated attackers with registry deletion privileges to inject arbitrary shell commands via a crafted registryUrl parameter. The vulnerability was disclosed via GitHub Security Advisory and is tracked as GHSA-827c-7x62-29jq.

Vendor
Dokploy
Product
Unknown
CVSS
HIGH 8.8
CISA KEV
Not listed in stored evidence
Original CVE published
2026-05-29
Original CVE updated
2026-05-29
Advisory published
2026-05-29
Advisory updated
2026-05-29

Who should care

Organizations running self-hosted Dokploy instances at version 0.29.0 or earlier, particularly those with multi-user environments where untrusted users may configure container registries. DevOps teams using Dokploy for production deployments should prioritize patching due to the high confidentiality, integrity, and availability impact.

Technical summary

The deleteRegistry function constructs a shell command using template literal interpolation: docker logout ${response.registryUrl}. Without shEscape() or equivalent sanitization, malicious registryUrl values containing shell metacharacters (semicolons, backticks, dollar signs, pipes) execute arbitrary commands in the context of the Dokploy server process. The docker login command in the same file demonstrates the correct pattern: docker login ... ${shEscape(response.registryUrl)} ...

Defensive priority

HIGH

Recommended defensive actions

  • Upgrade Dokploy to a version newer than 0.29.0 that addresses GHSA-827c-7x62-29jq
  • Review all shell command executions in packages/server/src/services/registry.ts for consistent use of shEscape() or equivalent sanitization
  • Audit registry configuration interfaces to validate registryUrl format before storage
  • Implement defense-in-depth by restricting Dokploy service account permissions to prevent command execution escalation
  • Monitor system logs for suspicious docker logout commands or unexpected shell activity from the Dokploy process

Evidence notes

The vulnerability stems from inconsistent input sanitization within the same source file—docker login uses shEscape() while docker logout does not. This pattern suggests a partial security fix or oversight during development. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) indicates network-accessible attack vector with low attack complexity, requiring low privileges but no user interaction, with high impact across confidentiality, integrity, and availability.

Official resources

2026-05-29