High severity · published Jul 21, 2026
CVE-2026-47398
PraisonAI: Arbitrary code execution via unguarded `spec.loader.exec_module` in `agents_generator.py` - sibling of CVE-2026-44334
8.1
CVSS
0.5%
EPSS
No
On KEV
Description
PraisonAI is a multi-agent teams system. The v4.6.32 chokepoint refactor (which patched CVE-2026-44334 / GHSA-xcmw-grxf-wjhj) added the PRAISONAI_ALLOW_LOCAL_TOOLS env-var gate to the tool_override.py sinks. However, two additional spec.loader.exec_module call sites in praisonai/agents_generator.py were missed and remain completely unguarded in versions prior to 4.6.40. Both functions accept a module_path parameter sourced from YAML configuration and execute it without validation, signature checking, or the env-var gate. Version 4.6.40 fixes the issue.
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Attack vector
Network
Complexity
High
Privileges
None
User interaction
None
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.5% · higher than 43% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
PR
PraisonAI · MervinPraison
< 4.6.40 · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-47398
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-47398
github.com
https://github.com/MervinPraison/PraisonAI/commit/ef79b7a0561796ad9807f0f09538c25cc78d3619
github.com
https://github.com/MervinPraison/PraisonAI/pull/1685
github.com
https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-78r8-wwqv-r299
More from PraisonAI
10.0
CVE-2026-48168
PraisonAI: GitHub Actions Claude workflow command injection via unquoted PR branch name
10.0
CVE-2026-61447
PraisonAI before 1.6.78 Remote Code Execution via CodeAgent
10.0
CVE-2026-40114
PraisonAI has Server-Side Request Forgery via Unvalidated webhook_url in Jobs API
10.0
CVE-2026-39305
Arbitrary File Write / Path Traversal in Action Orchestrator
10.0
CVE-2026-34955
PraisonAI: Sandbox Escape via shell=True and Bypassable Blocklist in SubprocessSandbox
