{"data":{"id":"47f2e472-75ce-4760-868a-039fbf59bf7a","title":"GHSA-39j6-4867-gg4w: utcp-http vulnerable to SSRF via attacker-controlled OpenAPI servers[0].url in HTTP communication protocol","summary":"The utcp-http plugin, version 1.1.1 and earlier, contains a blind SSRF flaw. register_manual() checks discovery URLs against an HTTPS or loopback allowlist, but call_tool() and call_tool_streaming() use the resolved tool_call_template.url without revalidating it, so an attacker-hosted OpenAPI spec can declare internal addresses such as http://169.254.169.254 in servers[0].url. A prefix check also let http://localhost.evil.com bypass the loopback rule. The flaw affects the utcp_http.http, utcp_http.streamable_http and utcp_http.sse protocols and can expose cloud metadata and internal services to the LLM caller.","solution":"Fixed in 1.1.2 (commit 5b16e43 on dev). The patch adds a utcp_http._security.ensure_secure_url() helper that validates hostnames by parsing, not string prefix, and calls it in register_manual() and before each aiohttp request in call_tool() and call_tool_streaming(). Workarounds: do not call register_manual() with URLs from untrusted parties, even over HTTPS, and restrict the agent host's outbound access to RFC1918, 169.254.0.0/16 and loopback addresses.","labels":["security"],"sourceUrl":"https://github.com/advisories/GHSA-39j6-4867-gg4w","publishedAt":"2026-05-07T22:32:54.000Z","cveId":"CVE-2026-44661","cweIds":null,"cvssScore":null,"cvssSeverity":"medium","severity":"medium","attackType":["other"],"issueType":"vulnerability","affectedPackages":["utcp-http@<= 1.1.1 (fixed: 1.1.2)"],"affectedPackageNames":["utcp-http"],"affectedPackageRefs":["pypi:utcp-http"],"affectedVendors":[],"affectedVendorsRaw":["utcp-http","UTCP","OpenAPI"],"classifierModel":"claude-haiku-5-5","classifierPromptVersion":"v4","summaryPromptVersion":"v2","headline":null,"headlinePromptVersion":null,"cvssVector":null,"attackVector":null,"attackComplexity":null,"privilegesRequired":null,"userInteraction":null,"exploitMaturity":"unknown","epssScore":0.00175,"epssCheckedAt":"2026-11-13T00:12:55.960Z","kevDateAdded":null,"advisoryAliases":["GHSA-39j6-4867-gg4w"],"affectedPackagesSource":null,"affectedPackagesCheckedAt":null,"patchAvailable":true,"disclosureDate":"2026-05-07T22:32:54.000Z","fixReleasedAt":"2026-05-03T21:01:24.147Z","daysToFix":-4,"fixCheckedAt":"2026-10-29T21:36:43.567Z","capecIds":null,"crossRefCount":0,"attackSophistication":"moderate","impactType":["confidentiality"],"aiComponentTargeted":"plugin","llmSpecific":false,"classifierConfidence":0.85,"researchCategory":null,"atlasIds":null,"fixes":[{"ecosystem":"pypi","name":"utcp-http","fixedVersion":"1.1.2","matchedVersion":"1.1.2","fixReleasedAt":"2026-05-03T21:01:24.147Z","daysToFix":-4,"match":"ecosystem","source":"registry","status":"found","checkedAt":"2026-10-29T21:36:43.421Z"}]}}