CVE-2026-40149 PraisonAI has an Unauthenticated Allow-List Manipulation Bypasses Agent Tool Approval Safety Controls
Unauthenticated attackers can modify the tool approval allowlist to bypass safety controls and execute arbitrary commands via agent tools.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-40149?
CVE-2026-40149 is a high-severity missing authorization vulnerability in MervinPraison PraisonAI, published on 9 Apr 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
PraisonAI is a multi-agent teams system. Prior to 4.5.128, the gateway's /api/approval/allow-list endpoint permits unauthenticated modification of the tool approval allowlist when no auth_token is configured (the default). By adding dangerous tool names (e.g., shell_exec, file_write) to the allowlist, an attacker can cause the ExecApprovalManager to auto-approve all future agent invocations of those tools, bypassing the human-in-the-loop safety mechanism that the approval system is specifically designed to enforce. This vulnerability is fixed in 4.5.128.
Weakness: CWE-396
Which versions are affected by CVE-2026-40149?
3 open source packages ship an affected version, including praisonai and PraisonAI. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
praisonai PyPI | All versions | 4.5.128 |
praisonai PyPI | All versions | 4.5.128 |
PraisonAI PyPI | All versions | 4.5.128 |
Products include Praison Praisonai.
How do I fix CVE-2026-40149?
Upgrade praisonai to 4.5.128 or later.
Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.
Is CVE-2026-40149 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-40149 exists.
Other vulnerabilities in MervinPraison PraisonAI
- CVE-2026-39888 PraisonAIAgents has a sandbox escape via exception frame traversal in `execute_code` (subprocess mode)
- CVE-2026-41497 Incomplete fix for CVE-2026-34935: Command Injection in MervinPraison/PraisonAI
- CVE-2026-40288 PraisonAI: Critical RCE via `type: job` workflow YAML
- CVE-2026-39890 PraisonAI Affected by Remote Code Execution via YAML Deserialization in Agent Definition Loading
- CVE-2026-34934 PraisonAI: Second-Order SQL Injection in `get_all_user_threads`
Sources
Also known as GHSA-4wr3-f4p3-5wjh, PYSEC-2026-2901.