Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPlace malicious tools.py in shared workspace
-
DeliveryVictim launches PraisonAI in that directory
-
ExploitAutomatic import executes attacker code
-
ExecutionSteal credentials from environment variables
-
PersistEstablish persistent backdoor
-
ImpactExfiltrate sensitive project data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Attacker must place malicious tools.py in the directory where PraisonAI versions ≤4.5.138 is launched (shared project, cloned repository, or writable workspace). Local access required; no authentication or user interaction needed. Exploited automatically at startup. |
| Impact | Real-world risk is HIGH despite the local attack vector (AV:L) due to modern development workflow realities. The CVSS 8.4 score reflects complete confidentiality, integrity, and availability impact (C:H/I:H/A:H) with low attack complexity (AC:L) and no required privileges (PR:N) or user interaction (UI:N). While AV:L typically suggests lower priority, this vulnerability exploits realistic attack scenarios: developers cloning untrusted repositories, teams sharing project directories, containerized environments with mounted volumes, and CI/CD pipelines processing external code. The automatable nature (executes on startup without user action) significantly elevates risk in automated deployment pipelines. No EPSS score available for quantitative exploitation probability, but the triviality of exploitation (simply place a Python file) combined with widespread use of shared development environments makes this practically weaponizable. No confirmed active exploitation (CISA KEV) at time of analysis, and no public exploit identified, but proof-of-concept would be trivial to construct. The SSVC framework would classify this as high technical impact (arbitrary code execution), low-to-medium exploitation likelihood (requires local file write access), and automatable in supply chain contexts. The gap between 8.4 CVSS and real-world urgency depends entirely on organizational workspace hygiene and whether PraisonAI is used in multi-tenant or shared development environments. |
| Exploit ScenarioDerived | An attacker contributes to an open-source project or shares a collaborative workspace containing a malicious tools.py file disguised as legitimate AI tool extensions. When a developer clones the repository and runs PraisonAI commands for testing (such as 'praisonai --auto'), the application automatically imports and executes the attacker's tools.py code without warnings. The malicious code exfiltrates environment variables containing API keys and credentials, establishes a reverse shell to the attacker's infrastructure, and persists by modifying the developer's shell configuration files, all executing with the developer's full system privileges. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 14, 2026
Arbitrary Python code execution in PraisonAI ≤4.5.138 occurs when malicious tools.py files are automatically imported from the current working directory without validation. Attackers placing a crafted tools.py in shared projects, cloned repositories, or writable workspaces achieve immediate code execution with full process privileges upon PraisonAI startup. EPSS data not available, but the local attack vector (AV:L) requiring no privileges (PR:N) or user interaction (UI:N) enables exploitation through supply chain and workspace poisoning attacks. No public exploit identified at time of analysis, though the vulnerability is trivial to exploit given the straightforward code injection mechanism.
RemediationAI
Upgrade immediately to PraisonAI version 4.5.139 or later, which implements validation and sanitization for tools.py imports according to the vendor security advisory at https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-g985-wjh9-qxxc. For environments unable to patch immediately, implement compensating controls: restrict write permissions on directories where PraisonAI is executed to trusted users only, use read-only mounts for project directories in containerized deployments, implement mandatory code review for all tools.py files before PraisonAI execution, and consider running PraisonAI within isolated virtual environments or containers with minimal filesystem access. Organizations using PraisonAI in CI/CD pipelines should audit all repository contents before automated execution and implement allowlisting for acceptable tools.py sources. Remove or quarantine any untrusted tools.py files from working directories prior to launching PraisonAI.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
PraisonAI is a multi-agent AI teams framework built on Python. The vulnerability stems from CWE-94 (Improper Control of Generation of Code/Code Injection) in three critical components: call.py's import_tools_from_file() function, tool_resolver.py's _load_local_tools() method, and CLI tool-loading initialization paths. These components use Python's dynamic import mechanisms to unconditionally load ./tools.py from the current working directory at application startup. The affected products include both cpe:2.3:a:mervinpraison:praisonai and cpe:2.3:a:mervinpraison:praisonaiagents packages. Python's import system executes module-level code during import operations, meaning any arbitrary Python code placed in tools.py executes immediately within the PraisonAI process context with full interpreter privileges. The lack of path validation, signature verification, sandboxing (via RestrictedPython or similar), or user confirmation transforms a legitimate extensibility feature into an automatic code execution mechanism. This represents a classic confused deputy problem where the application's trust in local filesystem contents is exploited.
Know when Praisonai gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Primary rating from Vendor (GitHub_M) · only source for this CVE.
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
PraisonAI is a multi-agent teams system. Versions 4.5.138 and below are vulnerable to arbitrary code execution through automatic, unsanitized import of a tools.py file from the current working directory. Components including call.py (import_tools_from_file()), tool_resolver.py (_load_local_tools()), and CLI tool-loading paths blindly import ./tools.py at startup without any validation, sandboxing, or user confirmation. An attacker who can place a malicious tools.py in the directory where PraisonAI is launched (such as through a shared project, cloned repository, or writable workspace) achieves immediate arbitrary Python code execution in the host environment. This compromises the full PraisonAI process, the host system, and any connected data or credentials. This issue has been fixed in version 4.5.139.
Executive ViewAI
PraisonAI versions 4.5.138 and earlier allow arbitrary Python code execution when the application automatically imports malicious tools.py files from the current working directory without validation, enabling attackers to gain full process-level control through supply chain poisoning or shared workspace compromise. Organizations deploying PraisonAI in collaborative development environments, CI/CD pipelines, or with untrusted repositories face immediate risk of data theft, system compromise, and lateral movement.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Run PraisonAI in restricted containers or sandboxes with minimal process privileges; (2) Enforce file integrity monitoring on tools.py imports and block execution from untrusted sources; (3) Restrict PraisonAI execution to isolated environments with no access to sensitive data or credentials; (4) Implement strict code review processes for all repository contents before cloning; (5) Disable automatic tool imports and require explicit, validated tool registration.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Related Vulnerabilities in PraisonAI Code Execution Vulnerabilities
View all 2Remote code execution in PraisonAI before 1.6.78 allows attackers to run arbitrary Python on the host by manipulating th
PraisonAI's TypeScript MCP server (npm package `praisonai`, versions 1.5.0 through 1.7.1) exposes an HTTP JSON-RPC trans
WebSocket origin-validation bypass in PraisonAI's Browser Server (praisonai/browser/server.py) before 4.6.58 lets an att
PraisonAI's `praisonai serve` subsystem (agents and unified modes) accepts an `--api-key` CLI flag that is parsed but ne
System prompt extraction and unauthorized tool invocation in PraisonAI before 4.6.78 arise because the prompt-injection
Unauthenticated remote agent invocation in PraisonAI versions 4.6.34 through 4.6.57 allows any network-reachable caller
SSRF protection bypass in PraisonAI's praisonaiagents library (all versions before 1.6.58) lets low-privileged users rou
Server-side request forgery in PraisonAI's Crawl4AI/Chromium crawling backend (all versions before 1.6.78) lets low-priv
Authentication fail-open in PraisonAI's Recipe HTTP server allows unauthenticated remote attackers to invoke recipe exec
Authentication bypass in PraisonAI's AgentServer component exposes all routes - /publish, /events, /info, /health - to u
Arbitrary Python code execution in PraisonAI's workflow include feature allows an attacker who controls a local recipe d
Server-side request forgery in PraisonAI's web_crawl() function (versions 1.5.128-1.6.57) allows an attacker who can inf
EUVD-2026-22207
GHSA-g985-wjh9-qxxc
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB