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.
The memory hooks executor in the file src/praisonai-agents/praisonaiagents/memory/hooks.py passes the command string directly to subprocess.run() with the shell=True option, without any sanitization. Shell metacharacters are interpreted by /bin/sh, which enables injection of arbitrary commands. There are two independent attack surfaces: the first is the pre_run_command and post_run_command hook events registered by hook configuration; the second, more serious, is the .praisonai/hooks.json configuration file, in which hooks registered for events such as BEFORE_TOOL and AFTER_TOOL are executed automatically during agent operation. An agent that gains file write access through prompt injection can overwrite .praisonai/hooks.json and cause silent execution of its payload on every subsequent lifecycle event.
An attacker can execute arbitrary system commands with the privileges of the agent process, potentially gaining full control over the system and the environment in which the application operates. In a scenario with prompt injection, it is possible to persistently execute malicious code without further user interaction.
Update PraisonAIAgents to version 1.5.128 or newer, in which the vulnerability has been fixed. References: https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-v7px-3835-7gjx
PraisonAI — PraisonAIAgents library in all versions before 1.5.128
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XPraison Praisonaiagents
APPPraison< 1.5.128
Related vulnerabilities
PraisonAI — RCE i command injection przez niezaufowane pliki YAML
PraisonAI – nieuwierzytelnione przejęcie sesji przeglądarki przez WebSocket
PraisonAI: Pominięcie sandboxa w execute_code() umożliwia RCE
PraisonAI is a multi-agent teams system. Prior to praisonai version 4.6.9 and praisonaiagents version 1.6.9, t...
PraisonAI is a multi-agent teams system. Prior to version 1.6.32, the URL checking logic in PraisonAI has a lo...