CVE-2026-40158

PraisonAI is a multi-agent teams system. Prior to 4.5.128, PraisonAI's AST-based Python sandbox can be bypassed using type.__getattribute__ trampoline, allowing arbitrary code execution when running untrusted agent code. The _execute_code_direct function in praisonaiagents/tools/python_tools.py uses AST filtering to block dangerous Python attributes like __subclasses__, __globals__, and __bases__. However, the filter only checks ast.Attribute nodes, allowing a bypass. The sandbox relies on AST-based filtering of attribute access but fails to account for dynamic attribute resolution via built-in methods such as type.getattribute, resulting in incomplete enforcement of security restrictions. The string '__subclasses__' is an ast.Constant, not an ast.Attribute, so it is never checked against the blocked list. This vulnerability is fixed in 4.5.128.
Configurations

Configuration 1 (hide)

cpe:2.3:a:praison:praisonai:*:*:*:*:*:*:*:*

History

20 Apr 2026, 19:38

Type Values Removed Values Added
First Time Praison
Praison praisonai
References () https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-3c4r-6p77-xwr7 - () https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-3c4r-6p77-xwr7 - Exploit, Vendor Advisory
CPE cpe:2.3:a:praison:praisonai:*:*:*:*:*:*:*:*

10 Apr 2026, 17:17

Type Values Removed Values Added
New CVE

Information

Published : 2026-04-10 17:17

Updated : 2026-04-20 19:38


NVD link : CVE-2026-40158

Mitre link : CVE-2026-40158

CVE.ORG link : CVE-2026-40158


JSON object : View

Products Affected

praison

  • praisonai
CWE
CWE-94

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

CWE-693

Protection Mechanism Failure