PraisonAIAgents has an OS Command Injection via shell=True in Memory Hooks Executor (memory/hooks.py)
Key facts
- Attack vector
- Local
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-78.
Summary
PraisonAIAgents is a multi-agent teams system. Prior to 1.5.128, he memory hooks executor in praisonaiagents passes a user-controlled command string directly to subprocess.run() with shell=True at src/praisonai-agents/praisonaiagents/memory/hooks.py. No sanitization is performed and shell metacharacters are interpreted by /bin/sh before the intended command executes. Two independent attack surfaces exist. The first is via pre_run_command and post_run_command hook event types registered through the hooks configuration. The second and more severe surface is the .praisonai/hooks.json lifecycle configuration, where hooks registered for events such as BEFORE_TOOL and AFTER_TOOL fire automatically during agent operation. An agent that gains file-write access through prompt injection can overwrite .praisonai/hooks.json and have its payload execute silently at every subsequent lifecycle event without further user interaction. This vulnerability is fixed in 1.5.128.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| MervinPraison | PraisonAIAgents | before 1.5.128 | 1.5.128 | Patch available | CNA |
| — | praisonaiagents (PyPI) | before 1.5.128 | 1.5.128 | Patch available | GHSA-v7px-3835-7gjx |
- PraisonAIAgents VendorMervinPraison Affected before 1.5.128 Fixed in 1.5.128 Patch available CNA
- praisonaiagents (PyPI) Vendor— Affected before 1.5.128 Fixed in 1.5.128 Patch available GHSA-v7px-3835-7gjx
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:praison:praisonaiagents:*:*:*:*:*:*:*:* | before 1.5.128 | Vulnerable | MervinPraison |
- cpe:2.3:a:praison:praisonaiagents:*:*:*:*:*:*:*:* Versions before 1.5.128 Vulnerable ·MervinPraison
Remediation
- Fix · CNA PraisonAIAgents (MervinPraison) Fixed in 1.5.128
- Fix · GHSA-v7px-3835-7gjx praisonaiagents (PyPI) Fixed in 1.5.128 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-40111
- 2026-10-03 Alias added: GHSA-v7px-3835-7gjx
References
More MervinPraison Praisonaiagents vulnerabilities
- TI-2026-29070 PraisonAI: Critical RCE via `type: job` workflow YAML CVSS 3.1CRITICAL 9.8
- TI-2026-27162 PraisonAI: Python Sandbox Escape via str Subclass startswith() Override in execute_code CVSS 3.1CRITICAL 10.0
- TI-2026-29071 PraisonAI Browser Server allows unauthenticated WebSocket clients to hijack connected extension sessions CVSS 3.1CRITICAL 9.1
- TI-2026-32306 PraisonAI has unsafe tool resolution in `ToolExecutionMixin.execute_tool`: undeclared `__main__` callables execute CVSS 3.1HIGH 8.6
- TI-2026-27178 PraisonAI: SSRF in FileTools.download_file() via Unvalidated URL CVSS 3.1HIGH 8.6
- TI-2026-27161 PraisonAI: Shell Injection in run_python() via Unescaped $() Substitution CVSS 3.1CRITICAL 9.8
Sources
- CVE-2026-40111 · CVE Program
- CVE-2026-40111 · NVD
- FIRST EPSS
- GHSA-v7px-3835-7gjx · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences