Read the docs
TI-2026-39313 Aliases CVE-2026-54450GHSA-pph6-vfjv-vpjw

Server-side request forgery in stacklok toolhive

Priority LOW 14CWE-918Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
Present
Impact type
Information disclosure
Confidentiality · integrity · availability
Low · None · None
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-918 and the CVSS impact.

Summary

ToolHive is a utility designed to simplify the deployment and management of Model Context Protocol (MCP) servers. Prior to 0.29.1, networking.IsPrivateIP in pkg/networking/utilities.go omits the IPv6 NAT64 prefixes 64:ff9b::/96 and 64:ff9b:1::/48, so NAT64 addresses embedding private, loopback, or link-local IPv4 targets are classified as public and allowed. The most direct attacker-controlled path begins when an external OAuth client supplies a client_id URL that CIMDStorageDecorator.GetClient routes through FetchClientMetadataDocument in pkg/oauthproto/cimd/fetch.go; protectedDialerControl in pkg/networking/http_client.go and validateHost in pkg/skills/gitresolver/reference.go share the defective classification but use operator-controlled or user-controlled destinations. On a ToolHive host behind a NAT64/DNS64 gateway, the gateway translates an allowed address such as 64:ff9b:1::a9fe:a9fe to 169.254.169.254, permitting blind probing of internal TCP or TLS reachability. The attacker-controlled CIMD path requires HTTPS, verifies certificates, and does not reflect response bodies, so the established impact is an internal reachability oracle rather than metadata credential exfiltration; the webhook client is not affected because it does not use this IP guard. This issue is fixed in version 0.29.1.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00327 25th percentileScored 2026-11-07
Fix Fixed toolhive (stacklok): 0.29.1github.com/stacklok/toolhive (Go): 0.29.1

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
stackloktoolhivebefore 0.29.10.29.1Patch availableCNA
—github.com/stacklok/toolhive (Go)before 0.29.10.29.1Patch availableGHSA-pph6-vfjv-vpjw
  • toolhive Vendorstacklok Affected before 0.29.1 Fixed in 0.29.1 Patch available CNA
  • github.com/stacklok/toolhive (Go) Vendor— Affected before 0.29.1 Fixed in 0.29.1 Patch available GHSA-pph6-vfjv-vpjw

Remediation

  • Fix · CNA toolhive (stacklok) Fixed in 0.29.1
  • Fix · GHSA-pph6-vfjv-vpjw github.com/stacklok/toolhive (Go) Fixed in 0.29.1 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-54450
  2. 2026-10-03 Alias added: GHSA-pph6-vfjv-vpjw

References

  • TI-2026-41912 ToolHive: containerized MCP servers can reach host services via host.docker.internal, enabling lateral movement CVSS 3.1HIGH 8.8
  • TI-2024-22541 Minder's Github Webhook Handler vulnerable to denial of service from un-validated requests CVSS 3.1HIGH 7.5
  • TI-2026-41911 ToolHive: SSRF in remote MCP server authentication discovery (host-side, bypasses container isolation) CVSS 3.1MEDIUM 4.7
  • TI-2024-25220 Denial of service from maliciously configured Git repository in Minder CVSS 3.1MEDIUM 5.7
  • TI-2024-23307 Denial of service of Minder Server from maliciously crafted GitHub attestations CVSS 3.1MEDIUM 5.3
  • TI-2024-23266 Stacklok Minder vulnerable to denial of service from maliciously crafted templates CVSS 3.1MEDIUM 5.3
See all 9 →

Sources