CVE-2026-45366: universal-tool-calling-protocol typescript-utcp · Server-Side Request Forgery (SSRF)
Affects universal-tool-calling-protocol typescript-utcpSource CVE Database V5
Not known to be exploited · CVSS 4.7 Medium : upgrade to 1.1.2 when convenient.
Data as of 29 Oct 2026, 19:04 UTC
- EPSS
- 0.1% chance of exploitation in 30 days – higher than 1% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 1.1.2
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:NExploitation evidence
Disclosed: evidence found.
CVE published 28 May 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 29 Oct 2026.
What to do
Upgrade universal-tool-calling-protocol typescript-utcp to 1.1.2.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| universal-tool-calling-protocoltypescript-utcp | Affected
| Fixed in
|
AI-suggested
Upgrade to typescript-utcp version 1.1.2 or later, where this SSRF vulnerability has been fixed. There is no official vendor advisory specifying alternative mitigations. Patch status is not explicitly confirmed beyond the fix in version 1.1.2, so users should verify the upgrade. No other mitigations are indicated by the vendor advisory.
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.