Description
PraisonAI is a multi-agent teams system. From version 4.5.87 to before version 4.6.61, PraisonAI recipe execution has a dangerous-tool policy that is supposed to block default-denied tools unless the caller explicitly passes allow_dangerous_tools=True. That policy only checks tools declared in TEMPLATE.yaml requires.tools. For steps-based recipes, the actual execution path loads workflow.yaml with YAMLWorkflowParser. That parser resolves agent-level tools: declarations and preserves top-level approve:. Workflow.start() then installs those YAML-approved tools into the approval context. As a result, an untrusted recipe can omit execute_command from TEMPLATE.yaml requires.tools, declare it in workflow.yaml agents.*.tools, and add top-level approve: [execute_command]. The caller did not set allow_dangerous_tools=True, but the recipe policy allows the recipe and the workflow approval path self-approves the critical shell tool. This issue has been patched in version 4.6.61.
Published: 2026-10-23
Score: 7.8 High
EPSS: n/a
KEV: No
Impact: Remote Command Execution
Action: Apply Patch
AI Analysis

Impact

PraisonAI allows recipes to be defined by untrusted users. The system implements a dangerous‑tool policy that should only permit tools marked as dangerous when the recipe explicitly sets allow_dangerous_tools=True. In practice, the policy only checks tools listed in TEMPLATE.yaml requires.tools. The workflow parser, however, loads additional tool declarations from workflow.yaml and creates a separate approval context. An attacker can therefore declare a dangerous shell tool such as execute_command in workflow.yaml agents.*.tools and approve it via a top‑level approve: [execute_command] entry, bypassing the intended check. The recipe executes the shell tool, enabling arbitrary system commands with the privileges of the running PraisonAI process. The vulnerability is a classic command injection that impacts confidentiality, integrity, and availability. The vulnerability is enumerated as CWE‑78, CWE‑863 and CWE‑94.

Affected Systems

The affected product is PraisonAI from MervinPraison. Versions from 4.5.87 up to, but not including, 4.6.61 are impacted. All earlier versions (<4.5.87) and the patched release 4.6.61 and later are considered safe for this specific issue.

Risk and Exploitability

The CVSS score of 7.8 classifies the vulnerability as high severity, indicating that an attacker who can supply a recipe would be able to run arbitrary commands. The EPSS score is not available, but the public advisory indicates that the flaw exists in a widely used open‑source system. The issue is not listed in the CISA KEV catalog, yet the lack of a patch until 4.6.61 suggests that malicious code could be deployed before users apply the fix. The likely attack vector is an untrusted recipe submitter that leverages the YAML workflow parser to subvert the dangerous‑tool policy, making exploitation feasible for anyone with write access to recipes. Given the high impact and the absence of a mitigation in earlier releases, the risk remains significant until the update is applied.

Generated by OpenCVE AI on October 23, 2026 at 13:38 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to version 4.6.61 or newer, which corrects the dangerous tool policy.
  • If an upgrade is delayed, ensure that recipes do not declare dangerous tools outside TEMPLATE.yaml requires.tools and do not reference them in a top‑level approve list. Review and remove any execute_command entries from agents.*.tools and top‑level approve entries.
  • Enforce the allow_dangerous_tools flag strictly: only set it for recipes that truly need shell access and audit approve lists to confirm that no shell tools are approved without explicit authorization.

Generated by OpenCVE AI on October 23, 2026 at 13:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-7qw2-w5rc-37x2 PraisonAI recipe workflow policy can be bypassed by declaring and YAML-approving dangerous tools outside TEMPLATE.yaml
History

Fri, 23 Oct 2026 14:00:00 +0000

Type Values Removed Values Added
First Time appeared Mervinpraison
Mervinpraison praisonai
Vendors & Products Mervinpraison
Mervinpraison praisonai

Fri, 23 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Description PraisonAI is a multi-agent teams system. From version 4.5.87 to before version 4.6.61, PraisonAI recipe execution has a dangerous-tool policy that is supposed to block default-denied tools unless the caller explicitly passes allow_dangerous_tools=True. That policy only checks tools declared in TEMPLATE.yaml requires.tools. For steps-based recipes, the actual execution path loads workflow.yaml with YAMLWorkflowParser. That parser resolves agent-level tools: declarations and preserves top-level approve:. Workflow.start() then installs those YAML-approved tools into the approval context. As a result, an untrusted recipe can omit execute_command from TEMPLATE.yaml requires.tools, declare it in workflow.yaml agents.*.tools, and add top-level approve: [execute_command]. The caller did not set allow_dangerous_tools=True, but the recipe policy allows the recipe and the workflow approval path self-approves the critical shell tool. This issue has been patched in version 4.6.61.
Title PraisonAI recipe workflow policy can be bypassed by declaring and YAML-approving dangerous tools outside TEMPLATE.yaml
Weaknesses CWE-78
CWE-863
CWE-94
References
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'}


Subscriptions

Mervinpraison Praisonai
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-23T12:07:46.547Z

Reserved: 2026-06-24T01:45:48.697Z

Link: CVE-2026-57142

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-10-23T13:17:11.210

Modified: 2026-10-23T13:17:11.330

Link: CVE-2026-57142

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T13:45:17Z

Weaknesses
  • CWE-78

    Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')

  • CWE-863

    Incorrect Authorization

  • CWE-94

    Improper Control of Generation of Code ('Code Injection')