Description
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.
Published: 2026-07-10
Score: 8.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

PraisonAI, distributed as the pip package praisonaiagents, contains an unsafe dynamic module loading vulnerability in the component AgentFlow._resolve_pydantic_class. When a workflow step references a string output_pydantic, the framework unconditionally loads and executes a sibling tools.py file from the workflow directory using importlib.exec_module without any sandboxing, ignoring the PRAISONAI_ALLOW_*_TOOLS environment variables. This flaw allows an attacker who can control both the workflow file and the associated tools.py to run arbitrary Python code with the same privileges as the WorkflowManager, effectively granting remote code execution. The weakness corresponds to CWE‑693, exposing the system to unauthorized control flow injection.

Affected Systems

The vulnerability affects all installations of PraisonAI provided by vendor MervinPraison, specifically the praisonaiagents package version prior to 1.6.78. No other products or vendors are listed as affected.

Risk and Exploitability

The CVSS score of 8.5 reflects a high severity risk, and with an EPSS score of less than 1% the exploitation probability is very low. There is no KEV listing, indicating no known widespread exploitation yet. The likely attack vector requires an attacker to place malicious code in a workflow file and its sibling tools.py within the same directory, a scenario enabled when the workflow runner has write access or a user with sufficient privilege can supply the files. Once the workflow is executed via WorkflowManager or load_yaml, the attacker’s code runs with the process’s privileges, potentially compromising the entire host system.

Generated by OpenCVE AI on July 29, 2026 at 10:52 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade PraisonAI to version 1.6.78 or later, which removes the unsafe dynamic import of tools.py
  • Restrict file system permissions so that only trusted administrators can create or modify workflow directories and associated tools.py files
  • Run the WorkflowManager process under a least-privileged user to limit the impact of any potential execution of malicious code

Generated by OpenCVE AI on July 29, 2026 at 10:52 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 14 Jul 2026 02:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 10 Jul 2026 16:00:00 +0000

Type Values Removed Values Added
First Time appeared Mervinpraison
Mervinpraison praisonai
Vendors & Products Mervinpraison
Mervinpraison praisonai

Fri, 10 Jul 2026 14:45:00 +0000

Type Values Removed Values Added
Description 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.
Title PraisonAI before 1.6.78 Remote Code Execution via tools.py
First Time appeared Praison
Praison praisonai
Weaknesses CWE-693
CPEs cpe:2.3:a:praison:praisonai:*:*:*:*:*:*:*:*
Vendors & Products Praison
Praison praisonai
References
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 8.5, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Mervinpraison Praisonai
Praison Praisonai
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-14T01:47:45.326Z

Reserved: 2026-07-09T14:05:47.928Z

Link: CVE-2026-61437

cve-icon Vulnrichment

Updated: 2026-07-14T01:47:41.430Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-29T11:00:13Z

Weaknesses
  • CWE-693

    Protection Mechanism Failure