Description
typescript-utcp is a typescript implementation of UTCP. Prior to 1.1.2, the @utcp/http package is vulnerable to a blind Server-Side Request Forgery (SSRF) caused by a trust-boundary inconsistency between manual discovery and tool invocation. registerManual() validates the discovery URL against an HTTPS / loopback allowlist, but callTool() reuses the resolved toolCallTemplate.url directly without revalidating, and the OpenApiConverter blindly trusts whatever servers[0].url an attacker-hosted spec declares. An attacker who hosts a malicious OpenAPI spec on a legitimate HTTPS endpoint can declare e.g. servers: [{ url: "http://127.0.0.1:9090" }] or servers: [{ url: "http://169.254.169.254" }]; the converter then produces tools whose URL points at internal services on the agent host. This vulnerability is fixed in 1.1.2.
Published: 2026-05-28
Score: 4.7 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability in typescript-utcp allows a blind server-side request forgery (SSRF) when an attacker controls the servers[0].url field in an OpenAPI specification that the application consumes. During manual discovery, registerManual() validates that discovery URLs are HTTPS and loopback, but callTool() bypasses this check and uses the resolved toolCallTemplate.url directly. The OpenApiConverter trusts any URL listed, so an attacker hosting a malicious OpenAPI spec on a legitimate HTTPS endpoint can point servers[0].url to internal addresses such as 127.0.0.1:9090 or 169.254.169.254. The resulting request originates from the agent host, providing the attacker access to internal services or metadata without external network access. The flaw effectively grants an attacker control over outbound HTTP requests from the application.

Affected Systems

Affected systems include the universal-tool-calling-protocol’s typescript-utcp library, specifically any deployment that uses @utcp/http before version 1.1.2. The vulnerability exists in all versions prior to 1.1.2, and the issue is fixed in version 1.1.2 and later.

Risk and Exploitability

The CVSS score of 4.7 indicates moderate severity, and the EPSS score is currently unavailable, but the lack of listing in the CISA KEV catalog suggests the exploit has not yet been observed in the wild. Still, the vulnerability can be exercised by any entity that can supply a malicious OpenAPI definition to the application, which is typically reachable over the network. Based on the description, it is inferred that the attack vector is network-facilitated, requiring the attacker to host a malicious spec on a HTTPS endpoint that the application trusts. The risk depends on the exposure of the application to externally supplied OpenAPI specs and its outbound network configuration, as a successful exploitation would allow the attacker to obtain data from or pivot to internal services.

Generated by OpenCVE AI on May 28, 2026 at 22:26 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the @utcp/http package to version 1.1.2 or later.
  • Configure the application to re‑validate all OpenAPI spec server URLs, rejecting any that target internal addresses such as 127.0.0.1 or 169.254.169.254.
  • Restrict the application’s outbound connections to the internal network, blocking traffic to local addresses, to prevent potential SSRF exploitation.

Generated by OpenCVE AI on May 28, 2026 at 22:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-r8j5-8747-88cm @utcp/http: SSRF via attacker-controlled OpenAPI servers[0].url in HTTP communication protocol
History

Fri, 29 May 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Thu, 28 May 2026 21:30:00 +0000

Type Values Removed Values Added
Description typescript-utcp is a typescript implementation of UTCP. Prior to 1.1.2, the @utcp/http package is vulnerable to a blind Server-Side Request Forgery (SSRF) caused by a trust-boundary inconsistency between manual discovery and tool invocation. registerManual() validates the discovery URL against an HTTPS / loopback allowlist, but callTool() reuses the resolved toolCallTemplate.url directly without revalidating, and the OpenApiConverter blindly trusts whatever servers[0].url an attacker-hosted spec declares. An attacker who hosts a malicious OpenAPI spec on a legitimate HTTPS endpoint can declare e.g. servers: [{ url: "http://127.0.0.1:9090" }] or servers: [{ url: "http://169.254.169.254" }]; the converter then produces tools whose URL points at internal services on the agent host. This vulnerability is fixed in 1.1.2.
Title typescript-utcp: SSRF via attacker-controlled OpenAPI servers[0].url in HTTP communication protocol
Weaknesses CWE-918
References
Metrics cvssV3_1

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


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-05-29T13:56:10.659Z

Reserved: 2026-05-12T00:51:29.085Z

Link: CVE-2026-45366

cve-icon Vulnrichment

Updated: 2026-05-29T13:56:07.165Z

cve-icon NVD

Status : Received

Published: 2026-05-28T22:17:00.773

Modified: 2026-05-28T22:17:00.773

Link: CVE-2026-45366

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-28T22:30:28Z

Weaknesses