CVE-2026-45369 python-utcp: Command Injection via Unsanitized Argument Substitution in CLI Communication Protocol
Attackers can execute arbitrary shell commands by injecting malicious arguments into the python-utcp library's CLI communication protocol.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-45369?
CVE-2026-45369 is a high-severity command injection vulnerability in universal-tool-calling-protocol python-utcp, published on 14 May 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
python-utcp is the python implementation of UTCP. Prior to 1.1.3, the _substitute_utcp_args method in cli_communication_protocol.py inserts user-controlled tool_args values directly into shell command strings without any sanitization or escaping. These commands are then executed via /bin/bash -c (Unix) or powershell.exe -Command (Windows), allowing an attacker to inject arbitrary shell commands. This vulnerability is fixed in 1.1.3.
Weakness: CWE-78
Which versions are affected by CVE-2026-45369?
3 open source packages ship an affected version, including utcp-cli.
| Package | Affected | Fixed in |
|---|---|---|
utcp-cli PyPI | All versions | 1.1.2 |
utcp-cli PyPI | All versions | 1.1.2 |
utcp-cli PyPI | All versions | 1.1.2 |
How do I fix CVE-2026-45369?
Upgrade utcp-cli to 1.1.2 or later.
Upgrade, and pass arguments to programs as a list instead of through a shell. More about Command injection.
Is CVE-2026-45369 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-45369 exists.
Sources
Also known as GHSA-33p6-5jxp-p3x4, PYSEC-2026-560.