CVE-2026-61437: PraisonAI: unsafe dynamic import enables RCE
HIGH PoC AVAILABLE CISA: ATTENDPraisonAI's workflow engine imports a sibling tools.py file via unsandboxed importlib exec_module whenever a workflow step references a string output_pydantic class, and it does this even when the PRAISONAI_ALLOW_*_TOOLS safety flags are set to block it. A CVSS 7.8 rating (AV:L/PR:N/UI:R, full confidentiality/integrity/availability impact) means anyone who gets a victim to load a crafted workflow file plus its matching tools.py — via a shared template, a compromised repo, or an internal collaboration channel — achieves arbitrary Python code execution with the privileges of the workflow runner. There is no EPSS score, no CISA KEV listing, and no public exploit or Nuclei template yet, so this is not an actively exploited, mass-scan threat today; the risk is concentrated wherever teams run PraisonAI workflows sourced from outside their direct control. Patch to praisonaiagents 1.6.78 or later immediately, and until then treat any workflow YAML/tools.py pair from a non-trusted source as untrusted code — do not load or execute it via WorkflowManager or load_yaml. Security teams should also stop relying on PRAISONAI_ALLOW_*_TOOLS as a control, since this vulnerability bypasses it entirely, and should audit recently imported third-party workflow templates for suspicious tools.py files.
What is the risk?
High severity (CVSS 7.8) but currently low real-world exploitation likelihood: no EPSS score, not in CISA KEV, no public exploit code or Nuclei template found. Attack complexity is low and no privileges are required, but exploitation requires user interaction (loading/running a specific malicious workflow file with a paired tools.py), making this a targeted supply-chain/social-engineering vector rather than a remotely scannable flaw. Once triggered, impact is complete — full compromise of confidentiality, integrity, and availability on the host running the agent runtime, since the loaded code executes with the workflow runner's privileges and safety env vars are bypassed entirely.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| PraisonAI | pip | — | No patch |
| PraisonAI Agents | pip | — | No patch |
How severe is it?
What is the attack surface?
What should I do?
1 step-
1) Upgrade praisonaiagents to version 1.6.78 or later immediately. 2) Until patched, do not load or execute PraisonAI workflow files (and their sibling tools.py) from any source you don't fully control or haven't code-reviewed — this includes shared templates, community repos, and internal wikis. 3) Do not rely on PRAISONAI_ALLOW_*_TOOLS environment variables as a security boundary for this issue, since the vulnerable path ignores them. 4) Run PraisonAI workflow execution in a sandboxed, least-privilege environment (container with no access to sensitive credentials/network) to limit blast radius if exploitation occurs. 5) Detection: monitor for unexpected child processes or outbound network connections spawned by the PraisonAI runtime process, and audit for recently added or modified tools.py files alongside workflow YAML/JSON definitions in your repos.
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-61437?
PraisonAI's workflow engine imports a sibling tools.py file via unsandboxed importlib exec_module whenever a workflow step references a string output_pydantic class, and it does this even when the PRAISONAI_ALLOW_*_TOOLS safety flags are set to block it. A CVSS 7.8 rating (AV:L/PR:N/UI:R, full confidentiality/integrity/availability impact) means anyone who gets a victim to load a crafted workflow file plus its matching tools.py — via a shared template, a compromised repo, or an internal collaboration channel — achieves arbitrary Python code execution with the privileges of the workflow runner. There is no EPSS score, no CISA KEV listing, and no public exploit or Nuclei template yet, so this is not an actively exploited, mass-scan threat today; the risk is concentrated wherever teams run PraisonAI workflows sourced from outside their direct control. Patch to praisonaiagents 1.6.78 or later immediately, and until then treat any workflow YAML/tools.py pair from a non-trusted source as untrusted code — do not load or execute it via WorkflowManager or load_yaml. Security teams should also stop relying on PRAISONAI_ALLOW_*_TOOLS as a control, since this vulnerability bypasses it entirely, and should audit recently imported third-party workflow templates for suspicious tools.py files.
Is CVE-2026-61437 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-61437, increasing the risk of exploitation.
How to fix CVE-2026-61437?
1) Upgrade praisonaiagents to version 1.6.78 or later immediately. 2) Until patched, do not load or execute PraisonAI workflow files (and their sibling tools.py) from any source you don't fully control or haven't code-reviewed — this includes shared templates, community repos, and internal wikis. 3) Do not rely on PRAISONAI_ALLOW_*_TOOLS environment variables as a security boundary for this issue, since the vulnerable path ignores them. 4) Run PraisonAI workflow execution in a sandboxed, least-privilege environment (container with no access to sensitive credentials/network) to limit blast radius if exploitation occurs. 5) Detection: monitor for unexpected child processes or outbound network connections spawned by the PraisonAI runtime process, and audit for recently added or modified tools.py files alongside workflow YAML/JSON definitions in your repos.
What systems are affected by CVE-2026-61437?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, multi-agent workflow orchestration, AI agent tool invocation pipelines.
What is the CVSS score for CVE-2026-61437?
CVE-2026-61437 has a CVSS v3.1 base score of 7.8 (HIGH). The EPSS exploitation probability is 0.17%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0010.005 AI Agent Tool AML.T0011 User Execution AML.T0050 Command and Scripting Interpreter AML.T0104 Publish Poisoned AI Agent Tool Compliance Controls Affected
What are the technical details?
Original Advisory
PraisonAI (pip package praisonaiagents) before 1.6.78 contains an unsafe dynamic module loading vulnerability in AgentFlow._resolve_pydantic_class (src/praisonai-agents/praisonaiagents/workflows/workflows.py). When a workflow step uses a string output_pydantic reference, the framework locates and imports a sibling tools.py from the workflow file's directory via importlib exec_module without sandboxing, ignoring the PRAISONAI_ALLOW_*_TOOLS environment variables. An attacker who controls a workflow file and its sibling tools.py can execute arbitrary Python code with the workflow runner's privileges when the workflow is executed via WorkflowManager or after load_yaml.
Exploitation Scenario
An attacker publishes a seemingly useful PraisonAI workflow template (e.g., on GitHub, a shared internal wiki, or a Slack/Discord community) containing a workflow step with a string output_pydantic reference, paired with a malicious sibling tools.py in the same directory. A developer or security engineer at the victim organization downloads the workflow to automate a task and runs it via WorkflowManager or load_yaml. PraisonAI's AgentFlow._resolve_pydantic_class locates and imports the attacker's tools.py through importlib exec_module without any sandboxing, executing the attacker's arbitrary Python code with the privileges of whoever ran the workflow — potentially exposing API keys, cloud credentials, or other secrets accessible to that agent runtime, or serving as a foothold for lateral movement.
Weaknesses (CWE)
CWE-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:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H References
Timeline
Related Vulnerabilities
CVE-2026-34938 10.0 praisonaiagents: sandbox bypass enables full host RCE
Same package: praisonaiagents CVE-2026-39888 10.0 praisonaiagents: sandbox escape enables host RCE
Same package: praisonaiagents CVE-2026-47392 9.9 praisonaiagents: RCE via Python sandbox bypass
Same package: praisonaiagents GHSA-vc46-vw85-3wvm 9.8 PraisonAI: RCE via malicious workflow YAML execution
Same package: praisonaiagents CVE-2026-47391 9.8 PraisonAI: Unauth RCE via A2A eval injection
Same package: praisonaiagents