<?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, 03 Oct 2026 13:37:34 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-57122</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-57122</link>
      <description>&lt;p&gt;PraisonAI is a multi-agent teams system. Prior to 4.6.59, the WhatsApp and Linear bot webhook handlers verify HMAC signatures only when WHATSAPP_APP_SECRET or LINEAR_WEBHOOK_SECRET is configured and otherwise parse and dispatch unsigned request bodies. A remote unauthenticated client that reaches the webhook route can forge messages, comments, or agent-session events, impersonate platform users, influence agent prompts and actions, and disrupt bot processing. This issue is fixed in 4.6.59.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;PraisonAI is a multi-agent teams system. Prior to 4.6.59, the WhatsApp and Linear bot webhook handlers verify HMAC signatures only when WHATSAPP_APP_SECRET or LINEAR_WEBHOOK_SECRET is configured and otherwise parse and dispatch unsigned request bodies. A remote unauthenticated client that reaches the webhook route can forge messages, comments, or agent-session events, impersonate platform users, influence agent prompts and actions, and disrupt bot processing. This issue is fixed in 4.6.59.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-57122</guid>
    </item>
    <item>
      <title>GHSA-x92v-rpx6-p6cw — PraisonAI: Webhook signature verification skipped (fail-open) when secret unset, allowing forged inbound webhooks (What…</title>
      <link>https://db.gcve.eu/vuln/ghsa-x92v-rpx6-p6cw</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: praisonai&lt;/p&gt;
&lt;p&gt;The WhatsApp and Linear bot adapters verify the inbound webhook HMAC signature only
when a secret is configured. When the secret environment variable is unset — the
default on a fresh install and common in development — verification is skipped entirely
and the webhook body is parsed and dispatched as a genuine, trusted event. A remote,
unauthenticated attacker who can reach the bot&amp;#39;s webhook endpoint can inject arbitrary
platform events.&lt;/p&gt;
&lt;p&gt;Affected code:&lt;/p&gt;
&lt;p&gt;WhatsApp - src/praisonai/praisonai/bots/whatsapp.py
- __init__ (line 108): self._app_secret = app_secret or os.environ.get(&amp;#34;WHATSAPP_APP_SECRET&amp;#34;, &amp;#34;&amp;#34;)  -&amp;gt; defaults to &amp;#34;&amp;#34;
- route (line 246): app.router.add_post(self._webhook_path, self._handle_webhook)  -&amp;gt; default path &amp;#34;/webhook&amp;#34;
- _handle_webhook (lines 585-595): `if self._app_secret:` gates the ENTIRE check; when falsy the body is
  json.loads()&amp;#39;d and dispatched to _process_webhook_data() with no verification.&lt;/p&gt;
&lt;p&gt;Linear - src/praisonai/praisonai/bots/linear.py
- __init__ (line 86): self._signing_secret = signing_secret or os.environ.get(&amp;#34;LINEAR_WEBHOOK_SECRET&amp;#34;, &amp;#34;&amp;#34;)  -&amp;gt; &amp;#34;&amp;#34;
- _handle_webhook (lines 244-248): same `if self._signing_secret:` fail-open guard.
- start() (lines 169-170): only logs a warning; does not fail closed.&lt;/p&gt;
&lt;p&gt;The _verify_signature implementations themselves are correct (constant-time HMAC-SHA256);
the defect is that verification is bypassed when the secret is absent.&lt;/p&gt;
&lt;p&gt;Impact:
- WhatsApp: attacker POSTs a crafted Meta Cloud API payload spoofing any sender and mes…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: praisonai&lt;/p&gt;
&lt;p&gt;The WhatsApp and Linear bot adapters verify the inbound webhook HMAC signature only
when a secret is configured. When the secret environment variable is unset — the
default on a fresh install and common in development — verification is skipped entirely
and the webhook body is parsed and dispatched as a genuine, trusted event. A remote,
unauthenticated attacker who can reach the bot&amp;#39;s webhook endpoint can inject arbitrary
platform events.&lt;/p&gt;
&lt;p&gt;Affected code:&lt;/p&gt;
&lt;p&gt;WhatsApp - src/praisonai/praisonai/bots/whatsapp.py
- __init__ (line 108): self._app_secret = app_secret or os.environ.get(&amp;#34;WHATSAPP_APP_SECRET&amp;#34;, &amp;#34;&amp;#34;)  -&amp;gt; defaults to &amp;#34;&amp;#34;
- route (line 246): app.router.add_post(self._webhook_path, self._handle_webhook)  -&amp;gt; default path &amp;#34;/webhook&amp;#34;
- _handle_webhook (lines 585-595): `if self._app_secret:` gates the ENTIRE check; when falsy the body is
  json.loads()&amp;#39;d and dispatched to _process_webhook_data() with no verification.&lt;/p&gt;
&lt;p&gt;Linear - src/praisonai/praisonai/bots/linear.py
- __init__ (line 86): self._signing_secret = signing_secret or os.environ.get(&amp;#34;LINEAR_WEBHOOK_SECRET&amp;#34;, &amp;#34;&amp;#34;)  -&amp;gt; &amp;#34;&amp;#34;
- _handle_webhook (lines 244-248): same `if self._signing_secret:` fail-open guard.
- start() (lines 169-170): only logs a warning; does not fail closed.&lt;/p&gt;
&lt;p&gt;The _verify_signature implementations themselves are correct (constant-time HMAC-SHA256);
the defect is that verification is bypassed when the secret is absent.&lt;/p&gt;
&lt;p&gt;Impact:
- WhatsApp: attacker POSTs a crafted Meta Cloud API payload spoofing any sender and mes…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-x92v-rpx6-p6cw</guid>
    </item>
    <item>
      <title>PYSEC-2026-3523 — PraisonAI: Webhook signature verification skipped (fail-open) when secret unset, allowing forged inbound webhooks (What…</title>
      <link>https://db.gcve.eu/vuln/pysec-2026-3523</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: praisonai&lt;/p&gt;
&lt;p&gt;The WhatsApp and Linear bot adapters verify the inbound webhook HMAC signature only
when a secret is configured. When the secret environment variable is unset — the
default on a fresh install and common in development — verification is skipped entirely
and the webhook body is parsed and dispatched as a genuine, trusted event. A remote,
unauthenticated attacker who can reach the bot&amp;#39;s webhook endpoint can inject arbitrary
platform events.&lt;/p&gt;
&lt;p&gt;Affected code:&lt;/p&gt;
&lt;p&gt;WhatsApp - src/praisonai/praisonai/bots/whatsapp.py
- __init__ (line 108): self._app_secret = app_secret or os.environ.get(&amp;#34;WHATSAPP_APP_SECRET&amp;#34;, &amp;#34;&amp;#34;)  -&amp;gt; defaults to &amp;#34;&amp;#34;
- route (line 246): app.router.add_post(self._webhook_path, self._handle_webhook)  -&amp;gt; default path &amp;#34;/webhook&amp;#34;
- _handle_webhook (lines 585-595): `if self._app_secret:` gates the ENTIRE check; when falsy the body is
  json.loads()&amp;#39;d and dispatched to _process_webhook_data() with no verification.&lt;/p&gt;
&lt;p&gt;Linear - src/praisonai/praisonai/bots/linear.py
- __init__ (line 86): self._signing_secret = signing_secret or os.environ.get(&amp;#34;LINEAR_WEBHOOK_SECRET&amp;#34;, &amp;#34;&amp;#34;)  -&amp;gt; &amp;#34;&amp;#34;
- _handle_webhook (lines 244-248): same `if self._signing_secret:` fail-open guard.
- start() (lines 169-170): only logs a warning; does not fail closed.&lt;/p&gt;
&lt;p&gt;The _verify_signature implementations themselves are correct (constant-time HMAC-SHA256);
the defect is that verification is bypassed when the secret is absent.&lt;/p&gt;
&lt;p&gt;Impact:
- WhatsApp: attacker POSTs a crafted Meta Cloud API payload spoofing any sender and mes…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: praisonai&lt;/p&gt;
&lt;p&gt;The WhatsApp and Linear bot adapters verify the inbound webhook HMAC signature only
when a secret is configured. When the secret environment variable is unset — the
default on a fresh install and common in development — verification is skipped entirely
and the webhook body is parsed and dispatched as a genuine, trusted event. A remote,
unauthenticated attacker who can reach the bot&amp;#39;s webhook endpoint can inject arbitrary
platform events.&lt;/p&gt;
&lt;p&gt;Affected code:&lt;/p&gt;
&lt;p&gt;WhatsApp - src/praisonai/praisonai/bots/whatsapp.py
- __init__ (line 108): self._app_secret = app_secret or os.environ.get(&amp;#34;WHATSAPP_APP_SECRET&amp;#34;, &amp;#34;&amp;#34;)  -&amp;gt; defaults to &amp;#34;&amp;#34;
- route (line 246): app.router.add_post(self._webhook_path, self._handle_webhook)  -&amp;gt; default path &amp;#34;/webhook&amp;#34;
- _handle_webhook (lines 585-595): `if self._app_secret:` gates the ENTIRE check; when falsy the body is
  json.loads()&amp;#39;d and dispatched to _process_webhook_data() with no verification.&lt;/p&gt;
&lt;p&gt;Linear - src/praisonai/praisonai/bots/linear.py
- __init__ (line 86): self._signing_secret = signing_secret or os.environ.get(&amp;#34;LINEAR_WEBHOOK_SECRET&amp;#34;, &amp;#34;&amp;#34;)  -&amp;gt; &amp;#34;&amp;#34;
- _handle_webhook (lines 244-248): same `if self._signing_secret:` fail-open guard.
- start() (lines 169-170): only logs a warning; does not fail closed.&lt;/p&gt;
&lt;p&gt;The _verify_signature implementations themselves are correct (constant-time HMAC-SHA256);
the defect is that verification is bypassed when the secret is absent.&lt;/p&gt;
&lt;p&gt;Impact:
- WhatsApp: attacker POSTs a crafted Meta Cloud API payload spoofing any sender and mes…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/pysec-2026-3523</guid>
    </item>
  </channel>
</rss>
