PraisonAI recipe.run_stream skips dangerous-tool policy enforcement
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 4.6.59
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: poc
- Automatable: no
- Technical impact: total
Summary
PraisonAI, a multi-agent teams system, has a flaw in its recipe streaming function (recipe.run_stream) that skips the check blocking dangerous tools such as command execution, so recipes that declare those tools can run even when the caller has not allowed them. The non-streaming recipe.run() path still enforces the restriction, so the bypass affects only the streaming path.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original 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.
Timeline
- CVE published
- First seen by cve.now
- CISA SSVC assessment
Exploitation: poc · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- MervinPraison PraisonAI
From 4.5.87 · fixed in 4.6.59
- praisonaiPyPI
From 4.5.87 · fixed in 4.6.59