Description
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.
Published: 2026-09-27
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: Server-side request forgery
Action: Patch
AI Analysis

Impact

A flaw in python-utcp (pip package utcp-http) before version 1.1.12 allows a remote attacker to cause a client to request services bound to the victim’s loopback interface. The client processes a UTCP manual that the attacker supplies from a remote source and accepts loopback URLs because the manual bypasses the normal loopback check. This is a classic SSRF (CWE-918) that can return the response body of any locally accessible service that does not require authentication. The impact is disclosure of internal data and potentially further compromise of the local host.

Affected Systems

The vulnerability affects the universal-tool-calling-protocol python-utcp package (pip package utcp-http). All releases earlier than 1.1.12 are susceptible; version 1.1.12 and later include a fix that rejects manuals fetched from non-loopback origins that contain loopback URLs.

Risk and Exploitability

The CVSS score of 7.1 indicates a high potential for damage. EPSS is not available, so an estimated exploitation probability cannot be determined from the data. The vulnerability is not listed in the CISA KEV catalog. Exploitation requires an attacker who can serve a UTCP manual and a victim that registers it; the victim’s client will then contact services bound only to 127.0.0.1 and return their responses to the attacker. The attack vector is primarily server-side request forgery through a manual file sent from a remote origin.

Generated by OpenCVE AI on September 27, 2026 at 18:51 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update utcp-http to version 1.1.12 or later, which rejects manual files fetched from non-loopback origins that contain loopback URLs.
  • If an upgrade is not immediately possible, restrict manual registration to trusted internal sources or disable the ability to fetch manuals from remote origins that are not loopback.
  • Configure or modify ensure_secure_url logic to enforce loopback restrictions for manual-sourced URLs, thereby preventing the client from accessing local services via the UTCP protocol.

Generated by OpenCVE AI on September 27, 2026 at 18:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 30 Sep 2026 22:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Sun, 27 Sep 2026 19:15:00 +0000

Type Values Removed Values Added
First Time appeared Universal-tool-calling-protocol
Universal-tool-calling-protocol python-utcp
Vendors & Products Universal-tool-calling-protocol
Universal-tool-calling-protocol python-utcp

Sun, 27 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Description 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.
Title python-utcp before 1.1.12 SSRF via Remote HTTP Manual
Weaknesses CWE-918
References
Metrics cvssV3_1

{'score': 6.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N'}

cvssV4_0

{'score': 7.1, 'vector': 'CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:H/VI:L/VA:N/SC:H/SI:L/SA:N'}


Subscriptions

Universal-tool-calling-protocol Python-utcp
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-30T22:06:29.482Z

Reserved: 2026-09-27T16:38:56.428Z

Link: CVE-2026-101058

cve-icon Vulnrichment

Updated: 2026-09-30T22:06:25.229Z

cve-icon NVD

Status : Deferred

Published: 2026-09-27T18:16:31.973

Modified: 2026-09-30T23:16:57.177

Link: CVE-2026-101058

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-27T19:00:15Z

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)