High severity · published Oct 23, 2026
CVE-2026-56838
PraisonAI recipe.run_stream skips dangerous-tool policy enforcement
New
7.8
CVSS
0.1%
EPSS
No
On KEV
Description
PraisonAI is a multi-agent teams system. From version 4.5.87 to before version 4.6.59, PraisonAI recipe execution blocks default-denied dangerous tools unless the caller explicitly passes allow_dangerous_tools=True. The normal recipe.run() path enforces this with _check_tool_policy(). The streaming path, recipe.run_stream(), loads the same recipe, checks dependencies, and then calls _execute_recipe() without running the dangerous-tool policy check. As a result, a recipe that honestly declares execute_command in TEMPLATE.yaml requires.tools is denied by recipe.run(), but reaches the execution engine through recipe.run_stream() with allow_dangerous_tools=False. This issue has been patched in version 4.6.59.
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Attack vector
Local
Complexity
Low
Privileges
None
User interaction
Required
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.1% · higher than 4% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
PR
PraisonAI · MervinPraison
>= 4.5.87, < 4.6.59 · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-56838
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-56838
github.com
https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-v847-hxxw-3pxg
More from PraisonAI
10.0
CVE-2026-48168
PraisonAI: GitHub Actions Claude workflow command injection via unquoted PR branch name
10.0
CVE-2026-61447
PraisonAI before 1.6.78 Remote Code Execution via CodeAgent
10.0
CVE-2026-40114
PraisonAI has Server-Side Request Forgery via Unvalidated webhook_url in Jobs API
10.0
CVE-2026-39305
Arbitrary File Write / Path Traversal in Action Orchestrator
10.0
CVE-2026-34955
PraisonAI: Sandbox Escape via shell=True and Bypassable Blocklist in SubprocessSandbox
