CVE-2026-55522: PraisonAI: RCE via workflow include bypasses safe loader
GHSA-hxmv-c4g6-5fqc HIGH CISA: ATTENDPraisonAI's workflow 'include' feature loads a companion recipe's tools.py via a raw importlib import and executes it immediately as module-level code, and this path skips both the PRAISONAI_ALLOW_TEMPLATE_TOOLS/PRAISONAI_ALLOW_LOCAL_TOOLS opt-in gates and the centralized safe loader that PraisonAI otherwise relies on to vet autoloaded tools. For teams running multi-agent PraisonAI workflows that consume shared or externally-sourced recipe templates — internal marketplaces, community recipe repos, CI pipelines pulling workflow definitions — this is a full code-execution path that fires before any model call or workflow validation, so prompt-level guardrails and model safety filters offer zero protection. It's rated high severity (CVSS 7.8, C:H/I:H/A:H) but requires local access and user interaction, and EPSS sits at just 0.15% with no public PoC, no Nuclei template, and no CISA KEV listing — this is attend-and-patch, not drop-everything. Notably, this is an explicit bypass of a previously-fixed automatic tools.py RCE advisory in the same package family, signaling the vendor's autoload hardening has recurring gaps worth re-auditing; upgrade to praisonai >=4.6.58 / praisonaiagents >=1.6.58 immediately, and until then treat any workflow include or recipe.run() call against non-first-party recipe directories as untrusted code execution.
What is the risk?
High-impact (full C/I/A compromise of the process) but constrained exploitation path: local attack vector, low complexity, no privileges required, but requires user interaction (the victim or an automated pipeline must run a workflow/recipe pointing at attacker-controlled content). EPSS (0.15%, ~top-95th percentile of low-likelihood CVEs) and absence of KEV listing, public exploit, or scanner template indicate exploitation is currently theoretical rather than observed in the wild. Real-world risk concentrates in teams that consume shared/community/third-party PraisonAI recipes or automate workflow execution from external sources (CI, marketplaces, collaborative repos) — for those, the bar to exploitation is low since the sink triggers before any LLM call or safety check.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| PraisonAI | pip | >= 3.9.26, < 4.6.58 | 4.6.58 |
| PraisonAI | pip | — | No patch |
| PraisonAI Agents | pip | >= 0.12.12, < 1.6.58 | 1.6.58 |
How severe is it?
What is the attack surface?
What should I do?
1 step-
1) Upgrade immediately to praisonai >=4.6.58 and praisonaiagents >=1.6.58. 2) Until patched, treat workflow 'include' and recipe.run() calls as command execution: only reference recipe directories from fully trusted, version-controlled, internally-reviewed sources — never third-party or community templates. 3) Run PraisonAI processes with least privilege (non-root, containerized, restricted filesystem/network egress) to cap blast radius if exploited. 4) Audit CI/automation pipelines for any step that pulls and executes external workflow/recipe definitions. 5) Detection: monitor PraisonAI process trees for unexpected child processes or unusual module loads at workflow-include time; file integrity monitoring on recipe/tools.py directories. 6) Re-verify PRAISONAI_ALLOW_TEMPLATE_TOOLS/PRAISONAI_ALLOW_LOCAL_TOOLS enforcement is consistent post-patch, since this CVE shows the gate was previously bypassable via a parallel code path.
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-55522?
PraisonAI's workflow 'include' feature loads a companion recipe's tools.py via a raw importlib import and executes it immediately as module-level code, and this path skips both the PRAISONAI_ALLOW_TEMPLATE_TOOLS/PRAISONAI_ALLOW_LOCAL_TOOLS opt-in gates and the centralized safe loader that PraisonAI otherwise relies on to vet autoloaded tools. For teams running multi-agent PraisonAI workflows that consume shared or externally-sourced recipe templates — internal marketplaces, community recipe repos, CI pipelines pulling workflow definitions — this is a full code-execution path that fires before any model call or workflow validation, so prompt-level guardrails and model safety filters offer zero protection. It's rated high severity (CVSS 7.8, C:H/I:H/A:H) but requires local access and user interaction, and EPSS sits at just 0.15% with no public PoC, no Nuclei template, and no CISA KEV listing — this is attend-and-patch, not drop-everything. Notably, this is an explicit bypass of a previously-fixed automatic tools.py RCE advisory in the same package family, signaling the vendor's autoload hardening has recurring gaps worth re-auditing; upgrade to praisonai >=4.6.58 / praisonaiagents >=1.6.58 immediately, and until then treat any workflow include or recipe.run() call against non-first-party recipe directories as untrusted code execution.
Is CVE-2026-55522 actively exploited?
No confirmed active exploitation of CVE-2026-55522 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-55522?
1) Upgrade immediately to praisonai >=4.6.58 and praisonaiagents >=1.6.58. 2) Until patched, treat workflow 'include' and recipe.run() calls as command execution: only reference recipe directories from fully trusted, version-controlled, internally-reviewed sources — never third-party or community templates. 3) Run PraisonAI processes with least privilege (non-root, containerized, restricted filesystem/network egress) to cap blast radius if exploited. 4) Audit CI/automation pipelines for any step that pulls and executes external workflow/recipe definitions. 5) Detection: monitor PraisonAI process trees for unexpected child processes or unusual module loads at workflow-include time; file integrity monitoring on recipe/tools.py directories. 6) Re-verify PRAISONAI_ALLOW_TEMPLATE_TOOLS/PRAISONAI_ALLOW_LOCAL_TOOLS enforcement is consistent post-patch, since this CVE shows the gate was previously bypassable via a parallel code path.
What systems are affected by CVE-2026-55522?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, multi-agent orchestration pipelines, workflow/recipe automation, CI/CD pipelines running AI workflows.
What is the CVSS score for CVE-2026-55522?
CVE-2026-55522 has a CVSS v3.1 base score of 7.8 (HIGH). The EPSS exploitation probability is 0.15%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0011 User Execution AML.T0011.002 Poisoned AI Agent Tool AML.T0050 Command and Scripting Interpreter AML.T0112.000 Local AI Agent Compliance Controls Affected
What are the technical details?
Original Advisory
PraisonAI is a multi-agent teams system. In versions 3.9.26 through 4.6.57 of praiseonai and 0.12.12 through 1.6.57 of praiseonaiagents, the workflow "include" feature is vulnerable to code execution. Workflow._execute_include() implicitly imports and runs an included recipe's tools.py via a raw importlib.util.spec_from_file_location() and spec.loader.exec_module() call, without honoring the PRAISONAI_ALLOW_TEMPLATE_TOOLS/PRAISONAI_ALLOW_LOCAL_TOOLS autoload opt-in gates or routing through the centralized safe loader that protects the other tools.py autoload paths. As a result, a workflow that includes an attacker-controlled local recipe directory executes arbitrary module-level Python code during include setup, before any child workflow parsing or model call, and the same sink is reachable through the higher-level praisonai.recipe.run() recipe API. An attacker who can cause a victim process to run a workflow or recipe that includes an untrusted local recipe achieves arbitrary Python code execution as the PraisonAI process user, a variant that bypasses the hardening applied to the previously disclosed automatic tools.py RCE advisory family. This issue has been fixed in version 4.6.58 of praisonai and 1.6.58 of praisonaiagents.
Exploitation Scenario
An attacker publishes a seemingly useful PraisonAI recipe template to a public repository or community marketplace, or sends it directly to a target AI/ML engineer via social engineering. The victim's application (or an automated pipeline) executes a workflow that includes this recipe, or calls praisonai.recipe.run() pointing at the attacker's directory. Workflow._execute_include() unconditionally imports and executes the recipe's tools.py via importlib, running the attacker's arbitrary Python code as the PraisonAI process user — before any workflow validation or model call occurs. From there the attacker can exfiltrate environment secrets/API keys, pivot to other connected tools/services, or establish persistence on the host.
Weaknesses (CWE)
CWE-426 Untrusted Search Path
Primary
CWE-426 Untrusted Search Path
Primary
CWE-829 Inclusion of Functionality from Untrusted Control Sphere
Primary
CWE-829 Inclusion of Functionality from Untrusted Control Sphere
Primary
CWE-94 Improper Control of Generation of Code ('Code Injection')
Primary
CWE-94 Improper Control of Generation of Code ('Code Injection')
Primary
CWE-426 Untrusted Search Path CWE-829 Inclusion of Functionality from Untrusted Control Sphere CWE-94 Improper Control of Generation of Code ('Code Injection') CWE-426 — Untrusted Search Path: The product searches for critical resources using an externally-supplied search path that can point to resources that are not under the product's direct control.
- [Architecture and Design, Implementation] Hard-code the search path to a set of known-safe values (such as system directories), or only allow them to be specified by the administrator in a configuration file. Do not allow these settings to be modified by an external party. Be careful to avoid related weaknesses such as CWE-426 and CWE-428.
- [Implementation] When invoking other programs, specify those programs using fully-qualified pathnames. While this is an effective approach, code that uses fully-qualified pathnames might not be portable to other systems that do not use the same pathnames. The portability can be improved by locating the full-qualified paths in a centralized, easily-modifiable location within the source code, and having the code refer to these paths.
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-48168 10.0 PraisonAI: shell injection in Claude Action enables RCE
Same package: praisonai CVE-2026-61447 10.0 PraisonAI: RCE via unsandboxed LLM code execution
Same package: praisonai CVE-2026-61445 9.9 PraisonAI: AICoder root RCE via unsanitized tool calls
Same package: praisonai 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