PraisonAI recipe.run_stream skips dangerous-tool policy enforcement
Impact
PraisonAI versions 4.5.87 to 4.6.59 have a weakness where the recipe.run_stream() function skips policy enforcement for dangerous tools. This allows a recipe to execute commands without proper authorization.
Summarized by @cf/meta/llama-3.3-70b-instruct-fp8-fast. Verify details against the original sources.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.
Affected packages
Affected products
Vendor version evidence. Product records are separate from automatic dependency matching.
MervinPraison · GitHub_M
PraisonAI
1 range
MervinPraison · GitHub_M
PraisonAI
Compare with this publisher’s ranges. This does not inspect your installation.
affected
>= 4.5.87, < 4.6.59
Other versions: unknown
Original source 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.
Inside the record
Evidence available
Describes the evidence in this view, not whether the product is safe.
Original records
CVE-2026-56838View the latest unmodified CVE JSON from the official source. It may be newer than this imported page.
cve.new JSON →Underlying weaknesses
The source’s classification of what caused the vulnerability.
Contributing organizations · 2
Assigning organization
Additional data publisher
What changed
Follow changesLarge field values are marked as truncated previews. Original source snapshots remain retained.