CVE-2026-101061CVE-2026-12210GHSA-ppx3-28rw-8fpfPYSEC-2026-3931PYSEC-2026-3932
python-utcp: utcp-gql and utcp-websocket before 1.1.1 SSRF via URL validation bypass
universal-tool-calling-protocol python-utcpPyPIRuntimes & languages
CVSS
2.3LowExploitationPublic exploit codeCISA's assessment says proof of concept code is public, assessed 30 Sep 2026. Not in the KEV catalogCISA via CVE List
Exploit odds (EPSS)0.20%Chance of exploitation activity in the next 30 days, higher than 9% of CVEs. Scored 23 Oct 2026FIRST EPSS
What fixes it
- 1.1.1python-utcpCVE List
- 1.1.1utcp-gql, PyPIOSV
pip install "utcp-gql>=1.1.1" - 1.1.1utcp-websocket, PyPIOSV
pip install "utcp-websocket>=1.1.1"
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
utcp-gql before 1.1.1 and utcp-websocket before 1.1.1 contain server-side request forgery vulnerabilities due to incomplete application of CVE-2026-44661 fixes. The GraphQL plugin uses a vulnerable prefix check allowing bypass URLs like http://127.0.0.1.attacker.example, while the WebSocket plugin performs no URL validation despite documented security requirements. Attackers can force connections to internal services and cloud metadata endpoints by supplying malicious tool URLs in call templates, and receive configured API keys and OAuth tokens sent to attacker-controlled hosts.
Text from CVE List
Affected versions 8
- python-utcpaffected: all versions before 1.1.1CVE List
- python-utcpunaffected: 1.1.1CVE List
- utcp-gql, PyPIfrom first release, fixed in 1.1.1OSV
- utcp-gql, PyPI1.0.2OSV
- utcp-gql, PyPI1.1.0OSV
- utcp-websocket, PyPIfrom first release, fixed in 1.1.1OSV
- utcp-websocket, PyPI1.0.0OSV
- utcp-websocket, PyPI1.1.0OSV