<?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://db.gcve.eu</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, 17 Oct 2026 21:01:12 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-61433 — PraisonAI before 4.6.78 Code Injection via API deployment generator</title>
      <link>https://db.gcve.eu/vuln/cve-2026-61433</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; MervinPraison PraisonAI&lt;/p&gt;
&lt;p&gt;PraisonAI before 4.6.78 fails to safely encode deployment configuration values when generating Python source code for API servers. Attackers can inject arbitrary Python expressions through the deploy.api.host and agents_file configuration parameters that execute when the generated server starts or handles requests.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; MervinPraison PraisonAI&lt;/p&gt;
&lt;p&gt;PraisonAI before 4.6.78 fails to safely encode deployment configuration values when generating Python source code for API servers. Attackers can inject arbitrary Python expressions through the deploy.api.host and agents_file configuration parameters that execute when the generated server starts or handles requests.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-61433</guid>
    </item>
    <item>
      <title>GHSA-79fv-7hq9-w7xg — PraisonAI: API deploy code generator embeds unescaped YAML fields into Python source</title>
      <link>https://db.gcve.eu/vuln/ghsa-79fv-7hq9-w7xg</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: praisonai&lt;/p&gt;
&lt;p&gt;# API deploy code generator embeds unescaped YAML fields into Python source&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;PraisonAI&amp;#39;s API deployment generator copies `deploy.api.host` from `agents.yaml` directly into generated Python source without safe literal encoding. A malicious PraisonAI project can set that host value to a Python expression splice; when an operator runs the API deploy flow, the generated server source compiles and executes the injected expression at startup. The same generator also embeds `agents_file` directly into generated route-handler expressions, giving a second route-time source injection site if the agent file path is attacker-controlled.&lt;/p&gt;
&lt;p&gt;## Technical Details&lt;/p&gt;
&lt;p&gt;The vulnerable path starts with deployment configuration parsing. `Deploy.from_yaml()` reads the operator-supplied `agents.yaml`, `validate_agents_yaml()` accepts `deploy.api.host` as a string, and API deployments call `start_api_server(self.agents_file, self.config.api)`. `start_api_server()` calls `generate_api_server_code()` and executes the generated Python file with `python`.&lt;/p&gt;
&lt;p&gt;The current generator in `src/praisonai/praisonai/deploy/api.py` treats deployment data as Python syntax:&lt;/p&gt;
&lt;p&gt;```python
def generate_api_server_code(agents_file: str, config: Optional[APIConfig] = None) -&amp;gt; str:
    ...
    code = f&amp;#39;&amp;#39;&amp;#39;&amp;#34;&amp;#34;&amp;#34;
...
        praisonai = PraisonAI(agent_file=&amp;#34;{agents_file}&amp;#34;)
...
        &amp;#34;agent_file&amp;#34;: &amp;#34;{agents_file}&amp;#34;
...
    app.run(
        host=&amp;#39;{config.host}&amp;#39;,
        port={config.port},
        debug={config.reload}…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: praisonai&lt;/p&gt;
&lt;p&gt;# API deploy code generator embeds unescaped YAML fields into Python source&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;PraisonAI&amp;#39;s API deployment generator copies `deploy.api.host` from `agents.yaml` directly into generated Python source without safe literal encoding. A malicious PraisonAI project can set that host value to a Python expression splice; when an operator runs the API deploy flow, the generated server source compiles and executes the injected expression at startup. The same generator also embeds `agents_file` directly into generated route-handler expressions, giving a second route-time source injection site if the agent file path is attacker-controlled.&lt;/p&gt;
&lt;p&gt;## Technical Details&lt;/p&gt;
&lt;p&gt;The vulnerable path starts with deployment configuration parsing. `Deploy.from_yaml()` reads the operator-supplied `agents.yaml`, `validate_agents_yaml()` accepts `deploy.api.host` as a string, and API deployments call `start_api_server(self.agents_file, self.config.api)`. `start_api_server()` calls `generate_api_server_code()` and executes the generated Python file with `python`.&lt;/p&gt;
&lt;p&gt;The current generator in `src/praisonai/praisonai/deploy/api.py` treats deployment data as Python syntax:&lt;/p&gt;
&lt;p&gt;```python
def generate_api_server_code(agents_file: str, config: Optional[APIConfig] = None) -&amp;gt; str:
    ...
    code = f&amp;#39;&amp;#39;&amp;#39;&amp;#34;&amp;#34;&amp;#34;
...
        praisonai = PraisonAI(agent_file=&amp;#34;{agents_file}&amp;#34;)
...
        &amp;#34;agent_file&amp;#34;: &amp;#34;{agents_file}&amp;#34;
...
    app.run(
        host=&amp;#39;{config.host}&amp;#39;,
        port={config.port},
        debug={config.reload}…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-79fv-7hq9-w7xg</guid>
    </item>
  </channel>
</rss>
