{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-101061","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","state":"PUBLISHED","assignerShortName":"VulnCheck","dateReserved":"2026-09-27T16:38:56.428Z","datePublished":"2026-09-27T17:02:41.556Z","dateUpdated":"2026-09-27T17:02:41.556Z"},"containers":{"cna":{"providerMetadata":{"orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","shortName":"VulnCheck","dateUpdated":"2026-09-27T17:02:41.556Z"},"datePublic":"2026-06-14T00:00:00.000Z","title":"utcp-gql and utcp-websocket before 1.1.1 SSRF via URL validation bypass","descriptions":[{"lang":"en","value":"utcp-gql before 1.1.1 and utcp-websocket before 1.1.1 contain server-side request forgery vulnerabilities due to incomplete application of CVE-2026-44661 fixes. The GraphQL plugin uses a vulnerable prefix check allowing bypass URLs like http://127.0.0.1.attacker.example, while the WebSocket plugin performs no URL validation despite documented security requirements. Attackers can force connections to internal services and cloud metadata endpoints by supplying malicious tool URLs in call templates, and receive configured API keys and OAuth tokens sent to attacker-controlled hosts."}],"problemTypes":[{"descriptions":[{"lang":"en","description":"Server-Side Request Forgery (SSRF)","cweId":"CWE-918","type":"CWE"}]}],"affected":[{"vendor":"universal-tool-calling-protocol","product":"python-utcp","defaultStatus":"unaffected","packageURL":"pkg:pypi/utcp-gql","versions":[{"version":"0","status":"affected","versionType":"semver","lessThan":"1.1.1"},{"version":"1.1.1","status":"unaffected","versionType":"semver"}]},{"vendor":"universal-tool-calling-protocol","product":"python-utcp","defaultStatus":"unaffected","packageURL":"pkg:pypi/utcp-websocket","versions":[{"version":"0","status":"affected","versionType":"semver","lessThan":"1.1.1"},{"version":"1.1.1","status":"unaffected","versionType":"semver"}]}],"metrics":[{"format":"CVSS","cvssV4_0":{"version":"4.0","vectorString":"CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N","attackVector":"NETWORK","attackComplexity":"HIGH","attackRequirements":"PRESENT","privilegesRequired":"NONE","userInteraction":"PASSIVE","vulnConfidentialityImpact":"LOW","vulnIntegrityImpact":"LOW","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"LOW","subIntegrityImpact":"LOW","subAvailabilityImpact":"NONE","baseScore":2.3,"baseSeverity":"LOW"}},{"format":"CVSS","cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"NONE","userInteraction":"REQUIRED","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE","baseScore":4.7,"baseSeverity":"MEDIUM"}}],"references":[{"url":"https://github.com/universal-tool-calling-protocol/python-utcp/security/advisories/GHSA-ppx3-28rw-8fpf","tags":["vendor-advisory"],"name":"GitHub Security Advisory (GHSA-ppx3-28rw-8fpf)"},{"name":"VulnCheck Advisory: utcp-gql and utcp-websocket before 1.1.1 SSRF via URL validation bypass","tags":["third-party-advisory"],"url":"https://www.vulncheck.com/advisories/utcp-gql-and-utcp-websocket-before-1.1.1-ssrf-via-url-validation-bypass"}],"credits":[{"lang":"en","value":"hariantara","type":"reporter"}],"x_generator":{"engine":"vulncheck-endgame"}}}}