<?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>Tue, 06 Oct 2026 21:47:32 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-369825</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-369825</link>
      <description>EUVD-2026-369825</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-369825</guid>
    </item>
    <item>
      <title>fkie_cve-2026-57133</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-57133</link>
      <description>&lt;p&gt;PraisonAI is a multi-agent teams system. From 1.5.1 until 1.7.2, the shell() helper exported from src/praisonai-ts/src/tools/utility-tools.ts checks only the first whitespace-delimited token against safeCommands and then passes the complete original string to child_process.exec(). A string that starts with an allowed read-only command can append a second non-allowlisted command through shell syntax, allowing arbitrary command execution with the PraisonAI process privileges. This issue is fixed in version 1.7.2.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;PraisonAI is a multi-agent teams system. From 1.5.1 until 1.7.2, the shell() helper exported from src/praisonai-ts/src/tools/utility-tools.ts checks only the first whitespace-delimited token against safeCommands and then passes the complete original string to child_process.exec(). A string that starts with an allowed read-only command can append a second non-allowlisted command through shell syntax, allowing arbitrary command execution with the PraisonAI process privileges. This issue is fixed in version 1.7.2.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-57133</guid>
    </item>
    <item>
      <title>GHSA-5jv7-2mjm-h6qj — npm PraisonAI utility shell safe-command wrapper allowlist bypass via shell chaining</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-5jv7-2mjm-h6qj</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: praisonai&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The published npm package `praisonai` ships `dist/tools/utility-tools.js`, which exports a `shell(command)` helper described in source as:&lt;/p&gt;
&lt;p&gt;```text
Execute shell command (safe version - read-only commands)
```&lt;/p&gt;
&lt;p&gt;The helper attempts to enforce a safe read-only command allowlist by checking only the first whitespace-delimited token:&lt;/p&gt;
&lt;p&gt;```ts
const safeCommands = [&amp;#39;ls&amp;#39;, &amp;#39;cat&amp;#39;, &amp;#39;head&amp;#39;, &amp;#39;tail&amp;#39;, &amp;#39;wc&amp;#39;, &amp;#39;grep&amp;#39;, &amp;#39;find&amp;#39;, &amp;#39;echo&amp;#39;, &amp;#39;date&amp;#39;, &amp;#39;pwd&amp;#39;, &amp;#39;which&amp;#39;];
const firstWord = command.split(/\s+/)[0];&lt;/p&gt;
&lt;p&gt;if (!safeCommands.includes(firstWord)) {
    return { success: false, error: `Command not allowed: ${firstWord}` };
}
```&lt;/p&gt;
&lt;p&gt;It then passes the entire original string to Node `child_process.exec()`:&lt;/p&gt;
&lt;p&gt;```ts
const { stdout, stderr } = await execAsync(command, { timeout: 5000 });
```&lt;/p&gt;
&lt;p&gt;Because `exec()` runs the command through a shell, a command string that starts with an allowed command can append a second non-allowlisted command with shell metacharacters. For example, direct `printf &amp;lt;marker&amp;gt;` is rejected, but `echo ok; printf &amp;lt;marker&amp;gt;` is accepted and executes `printf`.&lt;/p&gt;
&lt;p&gt;This bypasses the helper&amp;#39;s safe-command policy and allows arbitrary shell commands to run with the PraisonAI process privileges when an application, agent, or integration exposes this helper to lower-trust users, prompts, model output, or plugin/tool input.&lt;/p&gt;
&lt;p&gt;The PoV is deterministic and local-only. It installs only the npm package, runs harmless marker commands, and does not contact any live service after installation.…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: praisonai&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The published npm package `praisonai` ships `dist/tools/utility-tools.js`, which exports a `shell(command)` helper described in source as:&lt;/p&gt;
&lt;p&gt;```text
Execute shell command (safe version - read-only commands)
```&lt;/p&gt;
&lt;p&gt;The helper attempts to enforce a safe read-only command allowlist by checking only the first whitespace-delimited token:&lt;/p&gt;
&lt;p&gt;```ts
const safeCommands = [&amp;#39;ls&amp;#39;, &amp;#39;cat&amp;#39;, &amp;#39;head&amp;#39;, &amp;#39;tail&amp;#39;, &amp;#39;wc&amp;#39;, &amp;#39;grep&amp;#39;, &amp;#39;find&amp;#39;, &amp;#39;echo&amp;#39;, &amp;#39;date&amp;#39;, &amp;#39;pwd&amp;#39;, &amp;#39;which&amp;#39;];
const firstWord = command.split(/\s+/)[0];&lt;/p&gt;
&lt;p&gt;if (!safeCommands.includes(firstWord)) {
    return { success: false, error: `Command not allowed: ${firstWord}` };
}
```&lt;/p&gt;
&lt;p&gt;It then passes the entire original string to Node `child_process.exec()`:&lt;/p&gt;
&lt;p&gt;```ts
const { stdout, stderr } = await execAsync(command, { timeout: 5000 });
```&lt;/p&gt;
&lt;p&gt;Because `exec()` runs the command through a shell, a command string that starts with an allowed command can append a second non-allowlisted command with shell metacharacters. For example, direct `printf &amp;lt;marker&amp;gt;` is rejected, but `echo ok; printf &amp;lt;marker&amp;gt;` is accepted and executes `printf`.&lt;/p&gt;
&lt;p&gt;This bypasses the helper&amp;#39;s safe-command policy and allows arbitrary shell commands to run with the PraisonAI process privileges when an application, agent, or integration exposes this helper to lower-trust users, prompts, model output, or plugin/tool input.&lt;/p&gt;
&lt;p&gt;The PoV is deterministic and local-only. It installs only the npm package, runs harmless marker commands, and does not contact any live service after installation.…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-5jv7-2mjm-h6qj</guid>
    </item>
  </channel>
</rss>
