CVE-2026-40158

HIGH
MEDIUM Priority: 0.02 BB Relevance: 41/100
Published: 2026-04-10 Modified: 2026-10-26 First seen: 2026-10-29 Status: active

Attack Surface

Low Complexity No Auth Conf. Impact Integ. Impact

CVSS Vector Breakdown

AV: Local
AC: Low
PR: None
UI: Required
S: Unchanged
C: High
I: High
A: High

Description

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.

Weakness Classification (2)

Affected Software (1)

VendorProductVersion
praison praisonai < 4.5.128

Bug Bounty Relevance

41 / 100
✓ No authentication
✓ Low complexity

CVSS Score

7.8 / 10.0 v3.1
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

EPSS — Exploitation Probability

0.24%
Raw Score 0.002400
Percentile 15.1%
Date 2026-10-29

EPSS Trend

2026-10-29
0.00240
2026-10-28
0.00240

Intelligence Sources

nvd ref →