CVE-2026-56075: PraisonAI: RCE via hardcoded approval_mode bypass
HIGHPraisonAI before 4.5.128 allows any authenticated user to execute arbitrary shell commands on the host by instructing the LLM agent through the web UI — the root cause is that UI modules hardcode approval_mode=auto, silently overriding whatever value administrators set via the PRAISON_APPROVAL_MODE environment variable, rendering the manual approval gate inoperative regardless of configuration. With a CVSS of 8.8, network-reachable exploitation, low-privilege requirements, and no user interaction needed, every authenticated user account in an unpatched deployment is an RCE vector. PraisonAI carries 112 CVEs in this same package, indicating a persistent pattern of inadequate security controls; the combination of LLM-mediated execution and subprocess.run(shell=True) with insufficient sanitization blocklists makes traditional command-line monitoring an unreliable detection control. Upgrade to 4.5.128 or later immediately; if patching is not feasible, restrict PraisonAI UI access to trusted users via network controls and monitor host-level subprocess activity for anomalous commands.
What is the risk?
High risk for any organization running PraisonAI in production. The CVSS 8.8 accurately reflects the low-barrier, high-impact nature: exploitation requires only a valid account and natural language prompting — no AI/ML expertise needed. The misconfiguration pattern is particularly insidious because security teams may believe manual approval is active when it is silently disabled by the hardcoded value. AI agent frameworks running with broad filesystem or network permissions amplify the blast radius significantly beyond the agent host itself.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| PraisonAI | pip | — | No patch |
Do you use PraisonAI? You're affected.
How severe is it?
What is the attack surface?
What should I do?
6 steps-
Patch immediately: upgrade to PraisonAI >= 4.5.128.
-
If patching is delayed, restrict PraisonAI UI access to trusted, minimal user set via network controls (VPN, IP allowlist, firewall rules).
-
Post-patch: verify PRAISON_APPROVAL_MODE is respected by testing the manual approval workflow end-to-end.
-
Audit subprocess execution logs on the PraisonAI host for anomalous command patterns in the window prior to patching.
-
Implement least-privilege process isolation for the PraisonAI service (dedicated OS user, no sudo, restricted filesystem access).
-
Enumerate all accounts with PraisonAI UI access and revoke any unnecessary or stale accounts immediately.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-56075?
PraisonAI before 4.5.128 allows any authenticated user to execute arbitrary shell commands on the host by instructing the LLM agent through the web UI — the root cause is that UI modules hardcode approval_mode=auto, silently overriding whatever value administrators set via the PRAISON_APPROVAL_MODE environment variable, rendering the manual approval gate inoperative regardless of configuration. With a CVSS of 8.8, network-reachable exploitation, low-privilege requirements, and no user interaction needed, every authenticated user account in an unpatched deployment is an RCE vector. PraisonAI carries 112 CVEs in this same package, indicating a persistent pattern of inadequate security controls; the combination of LLM-mediated execution and subprocess.run(shell=True) with insufficient sanitization blocklists makes traditional command-line monitoring an unreliable detection control. Upgrade to 4.5.128 or later immediately; if patching is not feasible, restrict PraisonAI UI access to trusted users via network controls and monitor host-level subprocess activity for anomalous commands.
Is CVE-2026-56075 actively exploited?
No confirmed active exploitation of CVE-2026-56075 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-56075?
1. Patch immediately: upgrade to PraisonAI >= 4.5.128. 2. If patching is delayed, restrict PraisonAI UI access to trusted, minimal user set via network controls (VPN, IP allowlist, firewall rules). 3. Post-patch: verify PRAISON_APPROVAL_MODE is respected by testing the manual approval workflow end-to-end. 4. Audit subprocess execution logs on the PraisonAI host for anomalous command patterns in the window prior to patching. 5. Implement least-privilege process isolation for the PraisonAI service (dedicated OS user, no sudo, restricted filesystem access). 6. Enumerate all accounts with PraisonAI UI access and revoke any unnecessary or stale accounts immediately.
What systems are affected by CVE-2026-56075?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, agentic AI pipelines, multi-agent systems, LLM orchestration.
What is the CVSS score for CVE-2026-56075?
CVE-2026-56075 has a CVSS v3.1 base score of 8.8 (HIGH).
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0012 Valid Accounts AML.T0050 Command and Scripting Interpreter AML.T0051.000 Direct AML.T0053 AI Agent Tool Invocation AML.T0102 Generate Malicious Commands Compliance Controls Affected
What are the technical details?
Original Advisory
PraisonAI before 4.5.128 contains an arbitrary shell command execution vulnerability where the UI modules hardcode approval_mode to auto, overriding administrator configuration from PRAISON_APPROVAL_MODE environment variable. Authenticated attackers can instruct the LLM agent to execute arbitrary shell commands via subprocess.run with shell=True, bypassing the manual approval gate and insufficient command sanitization blocklists.
Exploitation Scenario
An authenticated low-privilege user logs into the PraisonAI web UI and submits a task prompt such as 'Execute a shell command to read /etc/passwd and POST it to attacker.com'. Because the UI module hardcodes approval_mode=auto, the LLM agent routes the request directly to subprocess.run(shell=True) without triggering the manual approval gate — regardless of PRAISON_APPROVAL_MODE. The insufficient command sanitization blocklist fails to intercept the exfiltration command. The attacker now has arbitrary code execution on the PraisonAI host, enabling credential harvesting from .env files, reverse shell establishment for persistent access, or lateral movement into internal networks reachable from the agent host.
Weaknesses (CWE)
CWE-863 — Incorrect Authorization: The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check.
- [Architecture and Design] Divide the product into anonymous, normal, privileged, and administrative areas. Reduce the attack surface by carefully mapping roles with data and functionality. Use role-based access control (RBAC) [REF-229] to enforce the roles at the appropriate boundaries. Note that this approach may not protect against horizontal authorization, i.e., it will not protect a user from attacking others with the same role.
- [Architecture and Design] Ensure that access control checks are performed related to the business logic. These checks may be different than the access control checks that are applied to more generic resources such as files, connections, processes, memory, and database records. For example, a database may restrict access for medical records to a specific database user, but each record might only be intended to be accessible to the patient and the patient's doctor [REF-7].
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H References
Timeline
Related Vulnerabilities
GHSA-vmmj-pfw7-fjwp 9.9 praisonai: sandbox escape gives RCE via codeMode tool
Same package: praisonai CVE-2026-47392 9.9 praisonaiagents: RCE via Python sandbox bypass
Same package: praisonai GHSA-vc46-vw85-3wvm 9.8 PraisonAI: RCE via malicious workflow YAML execution
Same package: praisonai GHSA-9qhq-v63v-fv3j 9.8 PraisonAI: RCE via MCP command injection
Same package: praisonai CVE-2026-39890 9.8 PraisonAI: YAML deserialization enables unauthenticated RCE
Same package: praisonai