PraisonAI workflow include bypasses tools.py autoload opt-in and executes included recipe code
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| MervinPraison | PraisonAI | affected |
|
||||||
| MervinPraison | praisonaiagents | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Mervinpraison | Praisonai |
|
||||||||
| Mervinpraison | Praisonaiagents |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-hxmv-c4g6-5fqc | PraisonAI workflow include bypasses tools.py autoload opt-in and executes included recipe code |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.224% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Mervinpraison
Mervinpraison praisonai Mervinpraison praisonaiagents |
|
| Vendors & Products |
Mervinpraison
Mervinpraison praisonai Mervinpraison praisonaiagents |
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | PraisonAI workflow include bypasses tools.py autoload opt-in and executes included recipe code | |
| Weaknesses | CWE-426 CWE-829 CWE-94 |
|
| References |
| |
| Metrics |
cvssV3_1
|