Docker MCP Gateway exposed a namespace identity mismatch. At registration, one reserved-tool collision check compared names using case-sensitive strings; elsewhere, enablement logic treated the relevant tool name without identical case restrictions. An attacker-controlled MCP server that had already been installed and enabled could publish an altered-case…
Inspect the ClaimsCase · DiggingBeagle record
Docker MCP Gateway tool-name case mismatch allowed reserved-tool impersonation
A malicious enabled MCP server could register a casing variant of a gateway-reserved tool name and receive calls intended for the gateway namespace.
GHSA-qg99-jrvf-j9fh; Docker MCP Gateway versions 0.43.1 through 0.43.3; permitted untrusted server registration and client selection.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Evidence
- Grade B
- Remediation
- patch available
- AI role
- AGAINST AI
Basis and provenance
Docker's published GitHub security advisory documents the case-sensitive collision check, inconsistent enabled-tool matching and patched v0.44.1. The demonstration requires an enabled hostile MCP server and a dispatch collision. It does not document in-the-wild victim commands or quantify affected installations; impact is unbanded.
Assessed Oct 18, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-CP13-MCP-FIX · CLM-CP13-MCP-NAME · CLM-ENRICH-DOCKER-PRECONDITION · GHSA-qg99-jrvf-j9fh: reserved Docker MCP Gateway tool names
At a glance
A tool namespace is itself an authorization interface. Reserved names must have one canonical identity across registration, policy checks, display and dispatch; otherwise even a syntactically valid tool call can be delivered to the wrong principal. The separate Docker MCP Gateway metadata crash case has a different entry point and consequence.
Read the implicationsNo independently documented production victim or confirmed real credential delivery. Exploit requires an attacker-controlled server to be enabled and selected by an MCP client.
Limits and uncertaintyFull account
Docker MCP Gateway exposed a namespace identity mismatch. At registration, one reserved-tool collision check compared names using case-sensitive strings; elsewhere, enablement logic treated the relevant tool name without identical case restrictions. An attacker-controlled MCP server that had already been installed and enabled could publish an altered-case version of a gateway-owned tool name without being rejected by the first check.
The resulting danger was ambiguous dispatch. When a client selected the impostor, arguments intended for a privileged gateway operation could be routed to the attacker's server. No such diversion was guaranteed merely because a malicious tool was registered: server enablement and actual client selection are essential prerequisites. The advisory reports versions 0.43.1 through 0.43.3 as affected and 0.44.1 as fixed through consistent case handling and stricter allowlisting.
This vulnerability should not be merged with the older malformed-enabled-server metadata crash. The earlier issue concerned availability after bad metadata; the case-variant collision concerns which identity receives a tool call. A meaningful verification test must register a harmless colliding tool in the vulnerable release, trace the actual dispatched recipient and repeat against the patched release. A model refusal that arrives after arguments reached an impostor would not repair the authorization failure.
Mechanism and trust boundary
- 01
Step
- 02
Step
- 03
Step
- 04
Step
Claims & evidence
CLM-CP13-MCP-FIXThe advisory specifies 0.44.1 as the fix and identifies versions 0.43.1 through 0.43.3 as vulnerable.supported
Basis: reported finding
- supportsGHSA-qg99-jrvf-j9fh: reserved Docker MCP Gateway tool namesprimary disclosure
GHSA affected versions and remediation
CLM-CP13-MCP-NAMEReserved tool collision checking used case-sensitive comparison while enablement treated names differently, allowing a case-variant impersonator.supported
Basis: reported finding
- supportsGHSA-qg99-jrvf-j9fh: reserved Docker MCP Gateway tool namesprimary disclosure
GHSA root cause: validateToolNameCollisions / isToolEnabled
CLM-ENRICH-DOCKER-PRECONDITIONAn attacker needs influence over an MCP server already enabled in the gateway, and a colliding tool must actually be selected for arguments to reach the impersonator; the advisory does not describe a drive-by remote victim.supported
Basis: reported finding
- supportsGHSA-qg99-jrvf-j9fh: reserved Docker MCP Gateway tool namesprimary disclosure
Docker security advisory GHSA-qg99-jrvf-j9fh, attacker requirements and affected behavior
Implications
A tool namespace is itself an authorization interface. Reserved names must have one canonical identity across registration, policy checks, display and dispatch; otherwise even a syntactically valid tool call can be delivered to the wrong principal. The separate Docker MCP Gateway metadata crash case has a different entry point and consequence.
Controls and mitigations
- Use Docker MCP Gateway v0.44.1 or later, which applies consistent collision and allowlist rules; tool-name prefixing can reduce namespace ambiguity where appropriate.
- Verify actual selected server identity at dispatch and avoid enabling untrusted MCP servers solely on the basis of innocuous-looking tool descriptions.
Unknowns and contradictions
- No independently documented production victim or confirmed real credential delivery.
- Exploit requires an attacker-controlled server to be enabled and selected by an MCP client.
Sources and citation
Material revision history
- Oct 18, 2026 · Canonical change recorded · new in release · revision 171