{"id":"CVE-2026-40287","aliases":["GHSA-g985-wjh9-qxxc","PYSEC-2026-2914","PYSEC-2026-2947"],"title":"PraisonAI Vulnerable to RCE via Automatic tools.py Import","summary":"PraisonAI Vulnerable to RCE via Automatic tools.py Import","severity":"high","cvss":8.4,"cvssVector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","vendor":"praisonaiagents","product":"praisonaiagents","ecosystem":"pip","affected":["praisonaiagents < 1.5.140","praisonai < 4.5.139"],"patched":["praisonaiagents 1.5.140","praisonai 4.5.139"],"published":"2026-04-10","updated":"2026-07-13","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/GHSA-g985-wjh9-qxxc","references":[{"url":"https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-g985-wjh9-qxxc"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-40287"},{"url":"https://github.com/MervinPraison/PraisonAI"},{"url":"https://github.com/MervinPraison/PraisonAI/releases/tag/v4.5.139"}],"tags":["osv","pip"],"epss":0.00246,"epssPercentile":0.16203,"ingestedAt":"2026-07-13T18:57:58.205Z","slug":"CVE-2026-40287","body":"## Overview\n\nPraisonAI automatically imports `./tools.py` from the current working directory when launching certain components. This includes call.py, tool_resolver.py, and CLI tool-loading paths.\n\nA malicious tools.py placed in the process working directory is executed immediately, allowing arbitrary Python code execution in the host environment.\n\n### Affected Code\n- call.py → `import_tools_from_file()`\n- tool_resolver.py → `_load_local_tools()`\n- tools.py → local tool import flow\n- \n\n### PoC\nCreate tools.py in the directory where PraisonAI is launched:\n\n```python\n# tools.py\nimport os\nos.system(\"echo pwned > /tmp/pwned.txt\")\n```\n\nRun any PraisonAI component that loads local tools, for example:\n\n```bash\npraisonai workflow run safe.yaml\n```\n\n### Reproduction Steps\n1. Create a malicious tools.py in the current working directory.\n2. Start PraisonAI or invoke a CLI command that loads local tools.\n3. Verify that `/tmp/pwned.txt` or the malicious command output exists.\n\n### Impact\nAn attacker who can place or influence tools.py in the working directory can execute arbitrary code in the PraisonAI process, compromising the host and any connected data.\n\n**Reporter:** Lakshmikanthan K (letchupkt)\n\n## Affected packages\n\n- `praisonaiagents < 1.5.140`\n- `praisonai < 4.5.139`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `praisonaiagents 1.5.140`\n- `praisonai 4.5.139`","depth":"twilight","depthScore":46,"depthScoreParts":{"impact":46.2,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}