The vulnerability, CVE-2026-57122, describes a 'fail-open' scenario in PraisonAI's WhatsApp and Linear bot webhook handlers. Specifically, if the WHATSAPP_APP_SECRET or LINEAR_WEBHOOK_SECRET environment variables were not configured, the system would skip signature verification entirely and proceed to process the webhook payload. This allowed unauthenticated attackers to forge webhook messages, impersonate users, and disrupt bot operations.
The provided commit 2adfe7e8323f6deec66925cf15a885b6238895e9 introduces a fix by modifying the _handle_webhook methods in src/praisonai/praisonai/bots/linear.py and src/praisonai/praisonai/bots/whatsapp.py. In the vulnerable version, the if self._signing_secret: (or if self._app_secret:) block was the only path for signature verification. If the secret was unset, this block was skipped, and the request body was processed directly.
The patch adds an elif webhooks_require_verification(): condition. This new condition, which relies on the webhooks_require_verification() function from the newly introduced src/praisonai/praisonai/bots/webhook_security.py module, ensures that if the secret is not configured, the webhook is explicitly rejected (fail-closed) unless an explicit insecure override is set. Therefore, the vulnerability lies in the original implementation of the _handle_webhook functions in both LinearBot and WhatsAppBot where the absence of a secret led to a bypass of security checks.
Exploitation would involve sending a crafted webhook request to the respective bot endpoints when the corresponding secret is not configured. The _handle_webhook function would be called, and due to the missing check, it would process the malicious payload without validating its authenticity.