Docker MCP Gateway
CVE-2026-55887
HIGH
Severity by source
Image is fetched over the network (AV:N) but requires the victim to reference an attacker-controlled image (UI:R) and supply-chain positioning (AC:H); no gateway auth needed (PR:N); container-host boundary crossed (S:C) with full host compromise.
Estimated by vuln.today — no official severity rating has been published for this CVE yet.
Lifecycle Timeline
2DescriptionCVE.org
Summary
A maliciously crafted OCI image label can inject arbitrary arguments into the docker run command line constructed by the MCP Gateway. An attacker who controls an image that the victim references via docker://, or that the victim's catalog pulls a snapshot from, can mount the host filesystem, run as UID 0, and execute arbitrary code on the host.
Details
The io.docker.server.metadata OCI image label is YAML-unmarshalled directly into the wide catalog.Server struct, which carries runtime-shaping fields (Volumes, User, Command, ExtraHosts, AllowHosts, DisableNetwork, Env, Remote, SSEEndpoint, OAuth,Secrets, LongLived, Policy) alongside descriptive fields. Every runtime field carries a YAML tag, so the unmarshal mass-assigns from the attacker-controlled label content; only Image is overwritten afterwards. The gateway's container-launch code then appends those fields verbatim as docker run flags (-v, -u, --add-host) with no allowlist or origin check, and execs docker with the resulting argv.
Impact
A malicious image author can achieve arbitrary code execution as UID 0 on the host of a victim running an affected version of MCP Gateway. Attacker-injected -v /:/host, -u root, and -v /var/run/docker.sock:/var/run/docker.sock arguments reach the docker run invocation that launches the MCP server container, giving the attacker full host filesystem access and root execution. The container/host trust boundary is bypassed at container-creation time, so the --security-opt no-new-privileges flag the gateway applies provides no protection: no in-container privilege escalation is needed.
Patches
The OCI image-label parser now only populates descriptive fields from the image label, which excludes fields that control the container runtime.
Credit
This issue was reported by Jabr Al-Otaibi @ DarkCov working with TrendAI Zero Day Initiative
Articles & Coverage 1
AnalysisAI
Arbitrary code execution as root on the host running Docker MCP Gateway via argument injection in the docker run command line. A malicious OCI image author can craft an io.docker.server.metadata label that YAML-unmarshals into runtime-shaping fields of the catalog.Server struct, causing the gateway to append attacker-chosen flags like -v /:/host and -u root when launching the MCP server container. No public exploit identified at time of analysis, but the upstream advisory describes a full exploitation path.
Technical ContextAI
Docker MCP Gateway is a Go-based gateway (github.com/docker/mcp-gateway) that launches MCP server containers based on metadata embedded in OCI image labels. The root cause is a CWE-88 (Argument Injection) issue: the io.docker.server.metadata label is YAML-unmarshalled directly into the wide catalog.Server struct, which carries runtime-control fields (Volumes, User, Command, ExtraHosts, AllowHosts, DisableNetwork, Env, Remote, SSEEndpoint, OAuth, Secrets, LongLived, Policy) annotated with YAML tags. Because only the Image field is overwritten after unmarshalling, every other field is mass-assigned from attacker-controlled content and later passed verbatim as docker run flags with no allowlist or origin check, breaking the trust boundary between the OCI image and the host before container isolation can apply.
RemediationAI
Vendor-released patch: upgrade github.com/docker/mcp-gateway to 0.42.2 or later, where the OCI image-label parser now populates only descriptive fields and explicitly excludes runtime-shaping fields. Operators who cannot immediately upgrade should restrict their MCP catalog to images from trusted registries and avoid referencing arbitrary third-party images via docker://, and may pin catalogs to known-good image digests rather than tags so attacker-controlled label updates cannot be pulled silently; the trade-off is reduced flexibility in adopting community MCP servers. Running the gateway under a dedicated low-privilege account and not exposing /var/run/docker.sock to it limits but does not eliminate impact since the gateway itself must drive docker run. Full advisory details are at https://github.com/docker/mcp-gateway/security/advisories/GHSA-r2xf-7jw5-pjg6.
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 technique Privilege Escalation
View allVendor StatusVendor
SUSE
| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
Share
External POC / Exploit Code
Leaving vuln.today
GHSA-r2xf-7jw5-pjg6