Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessOperator runs malicious MCP server under ToolHive
-
DeliveryContainer reaches Docker gateway (host.docker.internal / 172.17.0.1)
-
ExploitContact unauthenticated ToolHive API and sibling MCP proxies
-
ExecutionInvoke sibling tools and alter workload state
-
ImpactExfiltrate data/logs and disrupt services
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Access control enforcement
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires ToolHive CLI prior to 0.30.1 or ToolHive Studio prior to 0.38.0 running MCP servers on a Docker runtime with the DEFAULT (no network isolation) permission profile - for Studio this is aggravated because it explicitly sends network_isolation=false, overriding the backend's secure isolation default. The attacker's foothold is a malicious or compromised MCP server that the operator chooses to run (UI:R); once running, the un-isolated container reaches Docker gateway addresses (host.docker.internal, gateway.docker.internal, 172.17.0.1) and the ToolHive API / MCP proxy endpoints, which are reachable without authentication. Limiting factors: exploitation depends on the operator trusting and launching a hostile MCP server, a Docker deployment, and the pre-0.30.1/0.38.0 default config; environments that already enabled network isolation or that don't run untrusted MCP servers are not realistically exposed. |
| Impact | The vendor CVSS 3.1 vector (AV:A/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H = 8.8) rates this High/Critical, and the mechanics support serious impact: a malicious or compromised MCP server run under a vulnerable ToolHive gets, by default, an un-isolated container network that can reach the Docker gateway (host.docker.internal / gateway.docker.internal / 172.17.0.1) and, crucially, ToolHive's own API and MCP proxy endpoints which are reachable WITHOUT authentication - yielding data/log exposure, invocation of sibling MCP tools, workload-state tampering, and service disruption (justifying C:H/I:H/A:H and the S:C scope change from container to control plane). However, no exploitation-probability signals reinforce the raw score: EPSS is not provided, the CVE is not in CISA KEV, and no public PoC is referenced - so per available data this is 'no public exploit identified at time of analysis,' not active exploitation. The single most important limiting factor is UI:R: exploitation presupposes that the operator actually runs a hostile/compromised MCP server, so realistic risk is dominated by MCP-server supply-chain trust rather than opportunistic remote attack. I differ from the vendor on attack vector: the primary precondition is running a container on the host, which reads more like AV:L than AV:A (the Docker bridge is 'adjacent' only in a loose sense) - verify with the vendor. Net: a genuine and well-understood design weakness worth prompt patching for anyone running untrusted MCP servers, but its low deployment footprint and dependence on user action make it a targeted/insider-trust risk rather than a mass-exploitation priority. |
| Exploit ScenarioDerived | An operator adds and runs a malicious (or later-compromised) MCP server image under an unpatched ToolHive CLI (<0.30.1) or ToolHive Studio (<0.38.0), where network isolation is off by default (Studio even sends network_isolation=false, overriding the backend's secure default). The container uses the Docker gateway to reach the unauthenticated ToolHive API and sibling MCP proxy endpoints, reading data/logs, invoking other MCP tools, and altering workload state without ever escaping the container. No public PoC is referenced, but the fix PRs (toolhive#5583, toolhive-studio#2469) publicly document the exact default-isolation and Docker-gateway behavior. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 18, 2026
Malicious or compromised Model Context Protocol (MCP) server containers run under ToolHive CLI before 0.30.1 or ToolHive Studio before 0.38.0 are not network-isolated by default, allowing them to reach Docker gateway addresses (host.docker.internal, gateway.docker.internal, 172.17.0.1) and, critically, ToolHive's own API and MCP proxy endpoints, which are reachable without authentication (CVSS vector PR:N). A hostile MCP server can therefore read exposed data and logs, invoke sibling MCP tools, alter process or workload state, and disrupt services without ever escaping the container, with the scope change (S:C) reflecting a pivot from the container into the ToolHive control plane; exploitation requires user interaction because an operator must choose to run the untrusted server (UI:R). The vendor rates this 8.8 (High/Critical); no public exploit code was identified at time of analysis and the issue is not in CISA KEV, though the impact is severe for anyone running third-party MCP servers on Docker with default settings. Fixes are available in ToolHive CLI 0.30.1 and ToolHive Studio 0.38.0, which flip network isolation to enabled by default.
RemediationAI
Vendor-released patch: upgrade to ToolHive CLI 0.30.1 and ToolHive Studio 0.38.0, which change the --isolate-network flag default from false to true (opt out only with --isolate-network=false), make the API network_isolation field a pointer so an omitted value defaults to isolation ENABLED, and block Docker gateway addresses in the egress proxy unless allow_docker_gateway is explicitly set. Until upgrades can be deployed, run all MCP servers with network isolation explicitly enabled and confirm containers cannot resolve host.docker.internal, gateway.docker.internal, or 172.17.0.1; use the new network access modes (none/host/proxy) in Studio instead of leaving network access unrestricted. Additional compensating controls with trade-offs: bind the ToolHive API and MCP proxy endpoints to loopback and require authentication, since unauthenticated reachability is what converts container egress into control-plane compromise; avoid running untrusted or third-party MCP server images on the same Docker host as sensitive services; and restrict MCP server images to vetted sources. Note that enabling allow_docker_gateway or setting network isolation off for compatibility with MCP servers that legitimately need host access re-introduces the exposure and should be scoped per-workload rather than globally. No public exploit code was identified at time of analysis and the issue is not in CISA KEV, but the default-configuration exposure warrants prompt patching; consult the advisory at https://github.com/stacklok/toolhive/security/advisories/GHSA-qg2g-g9w3-m5h8 for vendor guidance.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ToolHive (CWE-284, Improper Access Control) deploys and manages MCP server containers on local Docker runtimes and routes traffic through its own API and per-server MCP proxies. In vulnerable builds, the default network permission profile applied to locally run MCP containers disables network isolation, so the container's egress is not filtered by the ToolHive egress proxy, letting the workload reach Docker gateway addresses (host.docker.internal, gateway.docker.internal, 172.17.0.1) and host-local services; because the ToolHive API and MCP proxy listeners were reachable without authentication, the un-isolated container could talk directly to the control plane rather than being confined to its own namespace. ToolHive Studio compounded the problem by explicitly transmitting network_isolation=false, overriding the backend's secure isolation default. The upstream fix (stacklok/toolhive PR #5583 and stacklok/toolhive-studio PR #2469) changes --isolate-network to default to true, converts the API field to a pointer so an omitted value defaults to isolation ENABLED, and adds an allow_docker_gateway control that blocks the Docker gateway addresses by default in the egress proxy even when isolation is on; ToolHive Studio replaces the boolean networkIsolation form field with explicit network access modes (none/host/proxy) and destination scoping (anywhere/selected). Independent assessment places the vector at AV:L (local) rather than the vendor's AV:A, since the attacker must already be executing code inside a locally run container; all other metrics (AC:L, PR:N, UI:R, S:C, C:H/I:H/A:H) are unchanged, so severity remains High/Critical.
Know when Toolhive 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
AV:A/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
Foothold is a container run on the host (AV:L, UI:R), needing no ToolHive credentials (PR:N); un-isolated access to the unauthenticated control plane crosses scope (S:C) with full data, workload-state, and service impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
ToolHive is a utility designed to simplify the deployment and management of Model Context Protocol servers. Prior to ToolHive CLI 0.30.1 and ToolHive Studio 0.38.0, locally run MCP server containers use the default network permission profile without network isolation, permitting access to host.docker.internal while ToolHive API and MCP proxy endpoints are reachable without authentication. A malicious or compromised MCP server can use the Docker gateway to contact host-local services, other ToolHive-managed MCP proxies, or the ToolHive control plane without escaping the container. This access can expose data and logs, invoke sibling MCP tools, alter process or workload state, and disrupt services. ToolHive Studio additionally sends network_isolation as false and overrides the backend's secure isolation default. This issue is fixed in ToolHive CLI 0.30.1 and ToolHive Studio 0.38.0.
Technical POC Analysis
Bug class: CWE-284 (Improper Access Control) per the CVE record.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Latest POC
1 public PoC link from github
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
ToolHive CLI versions before 0.30.1 and ToolHive Studio versions before 0.38.0 are affected by CVE-2026-58197 (CVSS 8.8, High), in which third-party MCP server containers lack default network isolation and can reach ToolHive's unauthenticated control-plane API and MCP proxy endpoints, allowing a compromised server to read exposed data and logs, invoke sibling tools, alter workload state, and disrupt services without escaping the container. Organizations that let operators run untrusted or third-party MCP servers are most exposed, and the flaw erodes the trust boundary leadership depends on for governing AI tooling and adjacent workloads. No public exploit code has been identified at time of analysis and exploitation requires an operator to launch the hostile server, but no vendor-released patch is available, so risk must be contained through network controls until fixed versions are deployed.
No vendor-released patch identified at time of analysis; the vendor advisory identifies ToolHive CLI 0.30.1 and ToolHive Studio 0.38.0 as the versions that remediate default network isolation. Interim mitigations: block MCP server container egress to Docker gateway addresses (host.docker.internal, gateway.docker.internal, 172.17.0.1) and to ToolHive API and MCP proxy endpoints; run MCP servers on isolated networks with no host gateway route; restrict third-party MCP server execution to a vetted allowlist; require authentication on ToolHive API and proxy endpoints; and monitor ToolHive logs for anomalous sibling-tool invocation, data access, or state changes.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-83167
GHSA-qg2g-g9w3-m5h8
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB