Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/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:X
Network-reachable execution surface (AV:N/AC:L) but requires low-privileged access to submit commands (PR:L); allowlist escape yields full file read, deletion, and binary execution (C/I/A:H) within the same system, so S:U.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
PraisonAI versions before 4.6.78 contain an allowlist bypass vulnerability in shell command execution that allows attackers to execute restricted commands via find's built-in -exec, -execdir, and -delete actions. Attackers can craft find commands with these built-in actions to read blocked files, delete files, or execute non-allowlisted binaries without triggering shell metacharacter filters.
AnalysisAI
Command execution allowlist bypass in PraisonAI before 4.6.78 lets a low-privileged attacker who can supply commands to the framework's restricted-execution feature slip past its shell-metacharacter filters by abusing find's built-in -exec, -execdir, and -delete actions. Because those actions run binaries and delete files entirely inside the find process, they never trip the metacharacter allowlist, so the attacker can read blocked files, delete arbitrary files, and launch non-allowlisted binaries. There is no public exploit identified at time of analysis and it is not in CISA KEV, but the CVSS 4.0 base score of 8.7 (High) reflects full loss of confidentiality, integrity, and availability of the affected system.
Technical ContextAI
PraisonAI is a Python-based multi-agent AI orchestration framework (CPE cpe:2.3:a:mervinpraison:praisonai) that can execute shell commands on behalf of agents or tools. To constrain this it uses an allowlist that filters on shell metacharacters and permitted binaries. The root cause is classic CWE-78 (OS Command Injection / improper neutralization of special elements in an OS command): the filter reasons about shell syntax, but GNU find is itself a mini command interpreter. Its -exec and -execdir primaries spawn arbitrary child processes and -delete removes files, all without any shell metacharacters (';', '|', '&', backticks) appearing in the command string. A defender who allows 'find' as a benign search tool therefore inadvertently grants a general-purpose exec/delete primitive, defeating the allowlist without ever invoking a shell.
RemediationAI
Vendor-released patch: 4.6.78 - upgrade PraisonAI to 4.6.78 or later, the primary and recommended fix (see GHSA-cv3g-hj65-pcfh). If you cannot upgrade immediately, remove 'find' from the command allowlist entirely, since its -exec/-execdir/-delete primaries make it impossible to safely allow as a search-only tool; the trade-off is losing legitimate filesystem-search functionality for agents. As defense in depth, stop treating shell-metacharacter filtering as the security boundary and run the command-execution component under a hardened OS sandbox (a locked-down container, a seccomp/AppArmor profile, or an unprivileged user with a read-only, minimal filesystem) so that even an allowlist bypass cannot read sensitive files or delete data - the cost is added deployment complexity and reduced tool flexibility. Also restrict who can reach the shell/tool-execution surface via network ACLs and authentication to shrink the PR:L attack surface. Advisory URLs: https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-cv3g-hj65-pcfh and https://www.vulncheck.com/advisories/praisonai-before-allowlist-bypass-via-find-exec.
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
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
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
Cross-site request forgery against the PraisonAI MCP HTTP-stream transport allows unauthenticated remote attackers to ex
Remote unauthenticated access to PraisonAI's legacy Flask API server allows attackers to execute configured agent workfl
Path traversal in praisonaiagents prior to 1.6.58 allows a low-privileged caller to write arbitrary JSON files to any pr
Server-Side Request Forgery in PraisonAI before version 4.6.58 allows unauthenticated remote attackers to force the appl
Same weakness CWE-78 – OS Command Injection
View allSame technique Command Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42899
GHSA-wrw8-384c-cg76