CVE-2026-61437 PraisonAI before 1.6.78 Remote Code Execution via tools.py
Attackers with control over workflow files can execute arbitrary Python code via unsafe dynamic module loading in PraisonAI.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Local or same network only
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-61437?
CVE-2026-61437 is a high-severity code injection vulnerability in MervinPraison PraisonAI, published on 10 Jul 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.
Official 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.
Weakness: CWE-693
Which versions are affected by CVE-2026-61437?
3 open source packages ship an affected version, including praisonaiagents.
| Package | Affected | Fixed in |
|---|---|---|
praisonaiagents PyPI | All versions | 1.6.78 |
praisonaiagents PyPI | All versions | 1.6.78 |
praisonaiagents PyPI | All versions | 1.6.78 |
How do I fix CVE-2026-61437?
Upgrade praisonaiagents to 1.6.78 or later.
Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.
Is CVE-2026-61437 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-61437 exists.
Sources
Also known as GHSA-4gfv-wg42-7jw5, PYSEC-2026-4267.