Skip to main content

Dokku CVE-2026-45408

| EUVDEUVD-2026-39801 CRITICAL
OS Command Injection (CWE-78)
2026-06-26 GitHub_M
9.0
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
9.0 CRITICAL
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
vuln.today AI
9.9 CRITICAL

Authenticated push user is required (PR:L), attacker self-triggers so UI:N, scope changes (S:C) as code runs as the privileged dokku user with full RCE impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
Patch available
Jun 26, 2026 - 18:02 EUVD
Source Code Evidence Fetched
Jun 26, 2026 - 17:24 vuln.today
Analysis Generated
Jun 26, 2026 - 17:24 vuln.today
CVE Published
Jun 26, 2026 - 16:19 cve.org
CRITICAL 9.0

DescriptionCVE.org

Dokku is a docker-powered PaaS. Prior to 0.38.2, the app name validation regex (^[a-z0-9][^/:_A-Z]*$) permits shell metacharacters. When an authenticated user pushes to a git remote with a crafted app name, the name is embedded unquoted into a bash pre-receive hook script via an unquoted heredoc (<<EOF instead of <<'EOF') in fn-git-create-hook() at plugins/git/internal-functions:378. On git push, bash interprets the semicolon as a command separator, executing arbitrary commands as the dokku user. This vulnerability is fixed in 0.38.2.

AnalysisAI

OS command injection in Dokku (the Docker-powered self-hosted PaaS) prior to version 0.38.2 allows an authenticated user with git push access to execute arbitrary shell commands as the privileged dokku user. The flaw stems from a permissive app-name validation regex that accepts shell metacharacters, which are then interpolated unquoted into a generated bash pre-receive hook; a semicolon in the app name terminates the intended command and runs attacker-supplied commands on git push. There is no public exploit identified at time of analysis, but the fix is confirmed in 0.38.2 and the underlying mechanics are fully documented in the GitHub advisory and PR #8590.

Technical ContextAI

Dokku generates per-app git server-side hooks to drive its push-to-deploy workflow. The vulnerable code path is fn-git-create-hook() in plugins/git/internal-functions:378, which builds a bash pre-receive script by embedding the app name into an unquoted heredoc (<<EOF rather than <<'EOF'). Because the heredoc is unquoted, bash performs expansion/parsing on the interpolated app name at hook-generation/execution time. The root cause (CWE-78, OS Command Injection) is upstream input validation: IsValidAppName used the regex ^[a-z0-9][^/:_A-Z]*$, a negated character class that only excluded slashes, colons, underscores, and uppercase letters while still permitting dangerous characters such as ;, $, `, |, &, >, and spaces. The fix in PR #8590 replaces this with an allow-list regex (^[a-z0-9][a-z0-9.-]*$ for the new validator, ^[a-z0-9][a-z0-9._-]*$ for the legacy variant) and centralizes validation in a Go helper (common is-valid-app-name) invoked from the shell layer, with new tests explicitly rejecting shell metacharacters. Affected CPE: cpe:2.3:a:dokku:dokku:*:*:*:*:*:*:*:*.

RemediationAI

Vendor-released patch: 0.38.2 - upgrade Dokku to 0.38.2 or later, which replaces the negated-character-class regex with strict allow-list app-name validation and routes shell-layer checks through the hardened Go validator. Apply the upgrade per the advisory at https://github.com/dokku/dokku/security/advisories/GHSA-9x85-7gxq-fcr3 (fix in https://github.com/dokku/dokku/pull/8590). If immediate upgrade is not possible, restrict who can create apps and push to git remotes to fully trusted operators only, and audit existing app names for shell metacharacters (semicolons, backticks, $, |, &, spaces) before they are used to generate hooks; on multi-tenant instances, treat any push-capable account as having potential command execution and remove untrusted access. As a stopgap you can enforce app names manually against the safe pattern ^[a-z0-9][a-z0-9.-]*$ in your provisioning automation, accepting the trade-off that legitimate names using underscores will be rejected. These controls reduce exposure but do not close the underlying injection - upgrading is the only complete fix.

More in Docker

View all
CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2019-5736 HIGH POC
8.6 Feb 11

runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac

CVE-2023-32077 HIGH POC
7.5 Aug 24

Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2023-5815 HIGH POC
8.1 Nov 22

The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post

CVE-2026-66384 MEDIUM POC
5.3 Aug 12

Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten

CVE-2014-9357 CRITICAL
10.0 Dec 16

Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build

CVE-2026-52806 CRITICAL POC
9.9 Jun 23

Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config

CVE-2026-56274 HIGH POC
8.7 Jun 23

Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per

CVE-2026-34156 CRITICAL POC
9.9 Mar 30

Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l

CVE-2019-15752 HIGH POC
7.8 Aug 28

Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c

CVE-2025-34221 CRITICAL POC
10.0 Sep 29

Vasion Print (formerly PrinterLogic) Virtual Appliance Host prior to version 25.2.169 and Application prior to version 2

Share

CVE-2026-45408 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy