Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Attacker must hold deploy rights so PR:L (not PR:N), delivery is over the network git/deploy path (AV:N), the eval path triggers reliably with no special timing (AC:L), and it yields full host command execution (C/I/A:H).
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
Lifecycle Timeline
8DescriptionNVD
Dokku is a docker-powered PaaS. Prior to 0.38.2, the openresty-vhosts plugin copies files from an app's openresty/http-includes/ git repository directory to the host and then interpolates their filenames, unescaped, into a single-quoted shell string that is later parsed by eval. A filename containing a single quote breaks the quoting and allows command substitution to execute arbitrary commands on the host as the dokku user during the app's next deploy. This vulnerability is fixed in 0.38.2.
AnalysisAI
OS command execution on the Dokku host is possible through the openresty-vhosts plugin in versions prior to 0.38.2, where custom OpenResty include filenames from an app's git repository are interpolated unescaped into a single-quoted shell string that is later run through eval. An attacker who can deploy a Dokku app with the openresty proxy enabled can plant a file whose name contains a single quote to break the quoting and inject a command substitution, executing arbitrary commands as the dokku user on the next deploy. There is no public exploit identified at time of analysis and it is not in CISA KEV, though the upstream advisory and a security regression test document the mechanism precisely.
Technical ContextAI
Dokku is a Docker-powered, self-hosted PaaS that supports pluggable HTTP proxies. The affected component is the openresty-vhosts plugin, which lets an app ship custom OpenResty/NGINX snippets via openresty/http-includes/ and openresty/location-includes/ directories in the app repository. During deploy (the core-post-extract and docker-args-process-deploy triggers) the plugin copies these files to the host and then builds a shell string that embeds each filename inside single quotes, which is subsequently evaluated with eval. Because the filename is attacker-controlled and not escaped, this is a textbook CWE-95 (Improper Neutralization of Directives in Dynamically Evaluated Code / eval injection): a filename containing a single quote terminates the quoting context, after which $(...) or backtick command substitution is parsed and executed by the shell. The affected CPE is cpe:2.3:a:dokku:dokku for all versions below 0.38.2.
RemediationAI
Vendor-released patch: 0.38.2 - upgrade Dokku to 0.38.2 or later, which adds filename sanitization (only alphanumeric, underscore, dot, and hyphen characters allowed; files whose names contain quotes, spaces, $, backticks, parentheses, or semicolons are skipped, and unsafe filenames abort the deploy) per PR https://github.com/dokku/dokku/pull/8588 and advisory https://github.com/dokku/dokku/security/advisories/GHSA-ggqh-98fj-8mg9. If immediate upgrade is not possible, switch affected apps off the openresty proxy back to the default nginx proxy (dokku proxy:set <app> nginx), which removes the vulnerable code path at the cost of losing OpenResty-specific include functionality; alternatively, restrict who holds deploy access and audit/reject any files under openresty/http-includes/ or openresty/location-includes/ whose names contain characters outside [a-zA-Z0-9_.-] before allowing a deploy. Until patched, treat deploy access on openresty-enabled apps as host-shell-equivalent.
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac
Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post
Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten
Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build
Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l
Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c
Vasion Print (formerly PrinterLogic) Virtual Appliance Host prior to version 25.2.169 and Application prior to version 2
Same weakness CWE-95 – Eval Injection
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39803