Microsoft MCP Gateway kept user-created tool and adapter workloads in one Kubernetes namespace and used resource names that were insufficiently bound to the creating principal. When a tenant selected an already-used name, the Kubernetes create failed with a conflict, but the gateway could treat the name as newly owned by that tenant. Later status, log and…
Inspect the ClaimsCase · DiggingBeagle record
Microsoft advisory published
An authenticated tenant could collide with an existing gateway workload name, confusing control-plane ownership and potentially replacing a privileged built-in tool deployment.
Public disclosure: Oct 16, 2026
Affected self-hosted MCP Gateway deployments using shared Kubernetes resource namespace and pre-fix name/ownership logic; an attacker must have an authenticated creation capability.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Evidence
- Grade B
- Remediation
- fixed reported
- AI role
- AGAINST AI
Basis and provenance
Desk assessment of cited firsthand report and scope limits; quantitative denominators describe only the reporter's stated sample. No independent live exploitation or universal impact is inferred.
Assessed Nov 11, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-R236-MICROSOFT-MCP-GATEWAY-NAME-COLLISION-01 · CLM-R236-MICROSOFT-MCP-GATEWAY-NAME-COLLISION-02 · Microsoft MCP Gateway advisory: Kubernetes name collisions and tool takeover
At a glance
When user-selected names double as authority keys, a namespace collision can become a tool execution privilege shift even though Kubernetes itself correctly rejects the conflicting create.
Read the implicationsThe advisory does not prove anonymous access, every image accepted by all clusters or exploitation of already-correctly isolated namespaces. Existing colliding workloads need explicit inventory, not a blind assumption that upgrade rewrites their ownership.
Limits and uncertaintyFull account
Microsoft MCP Gateway kept user-created tool and adapter workloads in one Kubernetes namespace and used resource names that were insufficiently bound to the creating principal. When a tenant selected an already-used name, the Kubernetes create failed with a conflict, but the gateway could treat the name as newly owned by that tenant. Later status, log and mutation operations addressed the object by name rather than verifying its real owner.
The disclosure shows cross-tenant access to another user's gateway resources and a path involving the reserved toolgateway workload name, potentially executing a replacement image under the built-in tool identity. Reproduction depends on permission to create a tool or adapter and any image-admission restrictions. Microsoft records a source fix before the later CVE publication. No actual hostile production tenant is documented.
Affected self-hosted MCP Gateway deployments using shared Kubernetes resource namespace and pre-fix name/ownership logic; an attacker must have an authenticated creation capability.
The advisory does not prove anonymous access, every image accepted by all clusters or exploitation of already-correctly isolated namespaces. Existing colliding workloads need explicit inventory, not a blind assumption that upgrade rewrites their ownership.
Why an unsuccessful Kubernetes create was not safe. The gateway checked duplicate names only within the user's tool or adapter store. When the corresponding Kubernetes object already existed, Kubernetes returned 409 Conflict, but the gateway still created a caller-owned record. Later status, log, update, delete and routing operations looked up the existing workload by name rather than verifying that it belonged to the authenticated record.
The particularly sensitive collision was toolgateway, the built-in service with its own service account and gateway secret. The advisory describes how a replacement image could inherit that existing workload authority. Version 1.0.0, built from source commit f57c4f0, reserves the name, checks cross-type uniqueness and validates ownership before future actions. Upgrading blocks new collision paths but cannot prove that an already modified gateway image or copied secret is clean; operators must inspect and rotate those separately.
Mechanism and trust boundary
- 01
Create a colliding tool name
A permitted tenant asks for the name of an existing tool or reserved gateway object.
Boundary: tenant request / Kubernetes object namespace
- 02
Ignore Kubernetes ownership conflict
Gateway application records an ownership association despite failed object creation.
Boundary: Kubernetes 409 / application authorization database
- 03
Operate another principal's workload
Follow-up status or mutation resolves by the collided name, including privileged toolgateway in the stronger scenario.
Boundary: name lookup / protected tool workload
Timeline
- Oct 14, 2026Event type unspecified
Ownership checks applied in source
Commit f57c4f0 reserves toolgateway and enforces Kubernetes workload ownership at mutation time.
- Oct 16, 2026Event type unspecified
Microsoft advisory published
Pre-v1.0.0 deployments identified as vulnerable to names shared across adapter, tool and built-in workload namespaces.
- Oct 16, 2026disclosure
Public disclosure
Claims & evidence
CLM-ENR237-MCPGW-1-0-0-FIXMicrosoft MCP Gateway fixed name-collision ownership confusion in v1.0.0; its advisory warns that upgrading does not reverse changes already made to an existing gateway workload.supported
Basis: reported finding
- supportsMicrosoft MCP Gateway advisory: Kubernetes name collisions and tool takeoverprimary disclosure
GHSA-frpg-5vp2-p974: Affected versions, Patches, and Checking for past abuse
CLM-R236-MICROSOFT-MCP-GATEWAY-NAME-COLLISION-01The advisory documents resource-name ownership confusion between MCP tenants after a Kubernetes name collision.supported
Basis: reported finding
- supportsMicrosoft MCP Gateway advisory: Kubernetes name collisions and tool takeoverprimary disclosure
GHSA-frpg-5vp2-p974: Description and ownership bypass
CLM-R236-MICROSOFT-MCP-GATEWAY-NAME-COLLISION-02The reserved toolgateway collision can affect a privileged built-in workload; the disclosed chain requires an authenticated resource creator and does not document field exploitation.supported
Basis: reported finding
- supportsMicrosoft MCP Gateway advisory: Kubernetes name collisions and tool takeoverprimary disclosure
GHSA: toolgateway and built-in service account impact
Implications
When user-selected names double as authority keys, a namespace collision can become a tool execution privilege shift even though Kubernetes itself correctly rejects the conflicting create.
Controls and mitigations
- Use globally unique, principal-bound Kubernetes names and fail hard on 409 object conflicts.
- Authorize read/update/delete and built-in workload replacement against the actual owner and resource identity at each request.
- Protect privileged gateway service accounts with image policy and distinct namespaces, and inspect existing ownership tables after patching.
- Audit existing adapter/tool names and the `toolgateway` image, service-account bindings and secret environment; redeploy and rotate affected secrets if historical collision or image replacement is suspected.
Unknowns and contradictions
- The advisory does not prove anonymous access, every image accepted by all clusters or exploitation of already-correctly isolated namespaces. Existing colliding workloads need explicit inventory, not a blind assumption that upgrade rewrites their ownership.
Sources and citation
Material revision history
- Nov 11, 2026 · Published version · first publication · revision 238