{"id":"CVE-2026-56838","aliases":[],"cve":{"records":[{"id":"CVE-2026-56838","source":"GitHub_M","state":"PUBLISHED","reasons":[],"replacements":[],"disputed":false,"unsupportedWhenAssigned":false,"reserved":"2026-06-23T14:55:09.117Z","published":"2026-10-23T11:58:01.475Z","modified":"2026-10-29T13:53:23.978Z"}],"publishers":[{"name":"GitHub_M","role":"CNA","organizationId":"a0819718-46f1-4df5-94e2-005712e83aaa","modified":"2026-10-23T11:58:01.475Z"},{"name":"CISA-ADP","role":"ADP","organizationId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","modified":"2026-10-29T13:53:23.978Z"}],"references":[{"url":"https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-v847-hxxw-3pxg","tags":["x_refsource_CONFIRM"],"source":"GitHub_M"},{"url":"https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-v847-hxxw-3pxg","tags":["exploit"],"source":"CISA-ADP"}],"weaknesses":[{"id":"CWE-78","description":"CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')","source":"GitHub_M"},{"id":"CWE-693","description":"CWE-693: Protection Mechanism Failure","source":"GitHub_M"},{"id":"CWE-863","description":"CWE-863: Incorrect Authorization","source":"GitHub_M"}],"applicability":[],"prioritization":[{"source":"CISA-ADP","type":"SSVC","role":"CISA Coordinator","timestamp":"2026-10-29T13:52:31.231130Z","decisions":[{"name":"Exploitation","value":"poc"},{"name":"Automatable","value":"no"},{"name":"Technical Impact","value":"total"}]}]},"title":"PraisonAI recipe.run_stream skips dangerous-tool policy enforcement","titleSource":"GitHub_M","descriptionSource":"GitHub_M","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.","score":7.8,"severity":"high","published":"2026-10-23T11:58:01.475Z","modified":"2026-10-29T13:53:23.978Z","withdrawn":false,"knownExploited":false,"affected":[],"products":[{"vendor":"MervinPraison","name":"PraisonAI","platforms":[],"versions":[{"version":">= 4.5.87, < 4.6.59","status":"affected"}],"cpes":[],"source":"GitHub_M","url":"https://www.cve.org/CVERecord?id=CVE-2026-56838"}],"remediation":[],"references":["https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-v847-hxxw-3pxg"],"sources":[{"name":"CVE","id":"CVE-2026-56838","modified":"2026-10-29T13:53:23.978Z","url":"https://www.cve.org/CVERecord?id=CVE-2026-56838"}],"assessments":[{"source":"GitHub_M","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","score":7.8}],"sourceAffected":[],"observedAt":"2026-10-29T14:11:14.162Z","kev":{"status":"not-listed","checkedAt":"2026-10-31T16:30:35.111Z"},"coverage":[{"source":"NVD","status":"not-checked"},{"source":"GHSA","status":"not-checked"},{"source":"EUVD","status":"not-checked"},{"source":"EPSS","status":"not-checked"}],"evidence":[],"aiSummary":{"text":"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.","model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","generatedAt":"2026-10-30T09:20:32.838Z","sources":[{"name":"CVE","url":"https://www.cve.org/CVERecord?id=CVE-2026-56838"}]}}