🔍 CVE-2026-54450

0.0
CVSS Score
UNKNOWN
2026-09-15
2026-09-30 17:51
✅ 완료

🇰🇷 한글 설명

ToolHive 0.29.1 미만 버전에서 IPv6 NAT64 접두사를 사설 IP로 올바르게 식별하지 못하는 취약점이 발견되었습니다. 이로 인해 공격자가 NAT64 게이트웨이를 통해 내부 네트워크의 TCP 또는 TLS 도달 가능성을 탐색할 수 있는 오라클 공격이 가능합니다.

💡 쉬운 설명

프로그램이 특정 주소를 '공공 주소'로 잘못 인식하여, 외부에서 접근하면 안 되는 내부 네트워크 정보를 몰래 확인할 수 있는 결함입니다. 공격자는 이를 이용해 내부망에 어떤 장치가 있는지 탐색할 수 있습니다.

🇺🇸 원문 (English)

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.

📍 영향받는 시스템

ToolHive 버전 0.29.1 미만

⚔️ 공격 벡터

조작된 OAuth client_id URL을 통해 NAT64 주소를 전달하여 내부 네트워크 도달 가능성을 확인하는 방식

🛡️ 대응 방법

ToolHive를 최신 버전인 0.29.1 이상으로 업데이트하십시오.

🔧 검증 코드

출력된 버전 번호가 0.29.1보다 낮으면 취약한 상태입니다.

Shell / Script
toolhive --version 2>/dev/null | grep -E '0\.[0-9]+\.[0-9]+'

💻 영향받는 소프트웨어

Spring Cloud Gateway Server