{"schema":"threatline.record/2","record":{"id":"CVE-2026-101058","aliases":["GHSA-8vxx-v7r9-948g"],"summary":"python-utcp before 1.1.12 SSRF via Remote HTTP Manual","details":"python-utcp (pip package utcp-http) before 1.1.12 does not verify whether tool URLs declared in a hand-written UTCP manual point at the agent's own loopback interface when that manual is discovered from a remote, non-loopback origin. Because ensure_secure_url intentionally permits loopback HTTP for local development and native manuals bypassed the loopback check performed by the OpenAPI converter, an attacker who can serve a UTCP manual that a victim registers can cause the client to issue requests to services bound only to 127.0.0.1 on the victim host and have the response bodies returned to the caller (server-side request forgery). The http, sse and streamable_http protocols are all affected. Reach is limited to loopback, and exploitation further requires a loopback service that answers unauthenticated requests with useful data. Fixed in utcp-http 1.1.12, which rejects manuals fetched from a non-loopback origin that declare loopback tool URLs, keyed off the final post-redirect discovery URL.","categories":["Runtimes & languages"],"product":"python-utcp","vendor":"universal-tool-calling-protocol","ecosystem":null,"affected_ranges":[{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-101058","source_modified_at":"2026-09-30T22:06:29.482Z","fetched_at":"2026-10-23T18:52:38.922436Z","product":"python-utcp","vendor":"universal-tool-calling-protocol","versions":[{"version":"0","status":"affected","versionType":"semver","lessThan":"1.1.12"},{"version":"1.1.12","status":"unaffected","versionType":"semver"}],"defaultStatus":"unaffected"}],"fixed_versions":[{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-101058","source_modified_at":"2026-09-30T22:06:29.482Z","fetched_at":"2026-10-23T18:52:38.922436Z","package":{"name":"python-utcp","ecosystem":null},"version":"1.1.12","basis":"first unaffected version stated in the CVE record"}],"cvss":7.1,"severity":"High","kev":{"listed":false},"epss":{"probability":0.00174,"percentile":0.06523,"score_date":"2026-10-23"},"published_at":"2026-09-27T17:02:39.400Z","modified_at":"2026-09-30T22:06:29.482Z","provenance":[{"source":"CVE List","url":"https://www.cve.org/CVERecord?id=CVE-2026-101058","fetched_at":"2026-10-23T18:52:38.922436Z","source_modified_at":"2026-09-30T22:06:29.482Z"},{"source":"EPSS","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-101058","fetched_at":"2026-10-23T18:42:43.628194Z","source_modified_at":"2026-10-23"}],"sources":["CVE List","EPSS"],"references":[{"source":"CVE List","url":"https://github.com/universal-tool-calling-protocol/python-utcp/security/advisories/GHSA-8vxx-v7r9-948g","tags":["vendor-advisory"]},{"source":"CVE List","url":"https://www.vulncheck.com/advisories/python-utcp-before-1.1.12-ssrf-via-remote-http-manual","tags":["third-party-advisory"]}],"locations":[],"motoko_assessment":{"status":"requires_architecture_review","automatic_remediation":false},"cve_state":"PUBLISHED","cvss_source":"CVE List","ssvc":{"exploitation":"none","automatable":"no","technical_impact":"partial","assessed_at":"2026-09-30T22:06:18.895295Z"},"classification":{"method":"product-first software-layer rules","rules_version":"2.1","matched_on":"product","confidence":"heuristic","reviewed":false},"change_timestamp":"2026-09-30T22:06:29.482Z","content_hash":"5595ab03e3f101087914767772efec754b3bb45c6690e4c0d66a673cad664cb3"}}
