Skip to main content

Dokku CVE-2026-86002

| EUVDEUVD-2026-101291 CRITICAL
Eval Injection (CWE-95)
2026-10-14 security-advisories@github.com
9.0
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate via app-level SSH access
  2. Delivery
    Inject payload through docker-options plugin
  3. Exploit
    Trigger build, deploy, or run
  4. Execution
    Bash eval expands command substitution
  5. Impact
    Execute arbitrary commands as dokku user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Eval input sanitization
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Three concrete prerequisites must all hold: (1) the attacker possesses app-level Dokku access and remote SSH access permitting execution of docker-options commands against a target app running Dokku before 0.38.25; (2) the payload is stored via the docker-options plugin (also reachable through dokku run's -e/--env flag and --ttl-seconds), requiring no special non-default configuration - any app accepting docker options is affected; and (3) a subsequent build, deploy, or run operation must execute to assemble DOCKER_ARGS and pass the value through Bash eval, detonating the $(...)/backtick substitution. Limiting factors: exploitation is NOT remote-unauthenticated - it demands valid authenticated app-level credentials and SSH access, and it depends on a build/deploy/run being triggered (which the privileged user can usually initiate themselves). The risk is most acute in multi-tenant Dokku deployments where app-level access is granted to otherwise-untrusted users.

Impact

This is a genuine high-impact vulnerability (CVSS 9.0) that is nonetheless privilege-gated rather than mass-exploitable. The CVSS vector (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H) shows network reachability and low complexity but requires attacker-held privileges: PR:L means the attacker must already have authenticated app-level Dokku access plus SSH rights to run docker-options commands. The scope change (S:C) and C:H/I:H/A:H reflect the true danger - the stored payload is evaluated by Bash on the host as the dokku OS user, yielding full host command execution that breaks out of any single app's boundary. Mapped to an SSVC-style framing: exploitation = none observed (no CISA KEV entry and no public exploit identified in the provided data), automatable = no (requires valid app-level credentials and a triggering build/deploy/run operation), technical impact = total. No EPSS probability was supplied, so widespread-exploitation likelihood cannot be quantified from this data; the absence of KEV/POC signals combined with the authentication requirement suggests this is an insider or compromised-credential / multi-tenant abuse risk rather than an opportunistic internet-wide threat. Note that UI:R is debatable: a user with app-level access can often trigger their own deploy, which would remove the user-interaction barrier and raise effective severity. Priority is high for multi-tenant Dokku hosts where untrusted parties hold app-level access, and lower for single-operator installs.

Exploit ScenarioDerived

An attacker who already holds app-level Dokku access and SSH rights runs dokku docker-options:add to store a value containing a shell command substitution such as $(...) or backticks. When a build, deploy, or run operation subsequently assembles DOCKER_ARGS, the stored string is processed by Bash eval and the substitution executes on the host as the dokku operating-system user, giving arbitrary command execution and effective control of the entire Dokku host. No public exploit was identified at time of analysis, though the fixing commit diff publicly reveals the vulnerable eval set -- "$DOCKER_ARGS" pattern.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 14, 2026

Command injection in Dokku before 0.38.25 allows a user with authenticated app-level Dokku access and remote SSH access to store shell-substitution payloads through the docker-options plugin, and also via dokku run -e/--env values and --ttl-seconds; on the next build, deploy, or run, Bash eval interprets the stored value and executes arbitrary commands as the dokku OS user. Exploitation is privilege-gated, requiring valid app-level credentials and SSH access rather than being remote-unauthenticated, and no public exploit was identified at time of analysis despite the CVSS 9.0 severity.

RemediationAI

Vendor-released patch: upgrade to Dokku 0.38.25 (release v0.38.25), which removes Bash eval of DOCKER_ARGS and passes docker-options, dokku run -e/--env, and --ttl-seconds values through tokenization so shell metacharacters are treated literally; see GHSA-fccf-j7qf-2xp9, PR 8848, and commit 1a376c362215a5c7044a08b3e3905b1a5fddc821. If immediate upgrade is not possible, restrict SSH access and docker-options command execution to trusted administrators only, because untrusted app-level users are the exploitation prerequisite; review stored docker options for $(...), backticks, $VAR, and globs and remove suspicious values, but note that stored values may already be malicious and will detonate on the next build/deploy/run. Limit who can trigger builds, deploys, and dokku run operations, understanding this only reduces the trigger surface and does not fix the eval flaw. After upgrading, --ttl-seconds must be a plain integer and existing Traefik docker-options labels with stray backslashes are repaired automatically on first Dokku run after upgrade.

Affected VersionsENISA

dokku < 0.38.25

Affected Packages

euvd dokku fix: 0.38.25

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Dokku is a Docker-powered PaaS whose plugins assemble container arguments. In affected versions, the docker-options plugin stores option values and concatenates them into DOCKER_ARGS, which was passed to Bash eval during build, deploy, or run. The root cause is CWE-95 (Eval Injection): shell metacharacters such as $(...) and backticks in stored values were not neutralized before dynamic evaluation. The source diff shows the fix replaces the eval-based assembly in builder-dockerfile/builder-build and similar logic in builder-herokuish/builder-build with tokenization through fn-docker-args-split and array-based argument passing, so values are passed verbatim. The same change affects dokku run -e/--env and --ttl-seconds, and the migration guide notes existing Traefik labels with a stray backslash are repaired automatically after upgrade. References: commit 1a376c362215a5c7044a08b3e3905b1a5fddc821, PR 8848, release v0.38.25, and GHSA-fccf-j7qf-2xp9.

Know when Docker gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

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

Authenticated app-level access stores the payload (PR:L); a build/deploy/run triggers the eval (UI:R); code runs as dokku user, escaping app scope to host (S:C).

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

Lifecycle Timeline

2
Patch available
Oct 14, 2026 - 17:18 EUVD
CVE Published
Oct 14, 2026 - 16:17 cve.org
CRITICAL 9.0

DescriptionCVE.org

Dokku is a docker-powered platform as a service. In Dokku versions before 0.38.25, a user with app-level Dokku access and remote SSH access to execute docker-options commands can store arbitrary strings through the docker-options plugin, and those strings are later concatenated into DOCKER_ARGS and processed by Bash eval during build, deploy, or run operations. Shell command substitutions in the stored values are interpreted on the host, allowing arbitrary command execution with the privileges of the dokku operating-system user. This issue is fixed in version 0.38.25.

Executive ViewAI

Why It Matters

Dokku deployments older than 0.38.25 contain a command-injection flaw that allows anyone holding both an application-level Dokku credential and remote SSH access to the host to execute arbitrary commands as the Dokku operating-system user. Because that account typically controls application containers, environment secrets, and shared host resources, a single compromised or malicious developer credential can be parlayed into broader host and multi-tenant control. No public exploit has been identified at time of analysis, but the privilege escalation path is direct, the severity rating is critical (CVSS 9.0), and no vendor-released patch has been identified at time of analysis - so exposure is currently contained only by access controls, not by a fix.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict remote SSH access to Dokku hosts to named administrators using key-based authentication, and revoke shared, stale, or unmanaged keys; minimize app-level Dokku access so only trusted deployers hold credentials; treat docker-options values and dokku run -e/--env and --ttl-seconds inputs as untrusted and stop passing externally influenceable data into them; remove or disable the docker-options plugin wherever it is not operationally required; audit stored application configuration for shell-substitution payloads and purge unexplained entries; run Dokku with least privilege in an isolated network segment so a compromised Dokku OS user cannot reach unrelated systems or credentials; and enable command and configuration-change logging with alerting on unexpected docker-options modifications or dokku run invocations.

Threat Intelligence Overview

EPSS Score
0.6%
Top 54% exploitable
Prevalence
Low
self-hosted PaaS, niche developer/small-team deployment footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +45
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

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-2025-14707 HIGH POC
8.9 Dec 15

Unauthenticated remote command injection in SGWBOX N3 firmware 2.0.25 lets attackers execute arbitrary operating-system

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

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