CVE-2026-40158

HIGH CVSS 3.1: 8,6 EPSS 0.03%
Обновлено 10 апреля 2026
Python
Параметр Значение
CVSS 8,6 (HIGH)
Устранено в версии 4.5.128
Тип уязвимости CWE-94 (Внедрение кода), CWE-693
Поставщик Python
Публичный эксплойт Нет

PraisonAI — это система мультиагентных команд. До версии 4.5.128 песочницу Python на основе AST от PraisonAI можно было обойти с помощью трамплина type.__getattribute__, что позволяло выполнять произвольный код при запуске ненадежного кода агента. Функция _execute_code_direct в praisonaiagents/tools/python_tools.py использует фильтрацию AST для блокировки опасных атрибутов Python, таких как __subclasses__, __globals__ и __bases__.

Однако фильтр проверяет только узлы ast.Attribute, допуская обход. Песочница использует фильтрацию доступа к атрибутам на основе AST, но не учитывает динамическое разрешение атрибутов с помощью встроенных методов, таких как type.getattribute, что приводит к неполному соблюдению ограничений безопасности. Строка «__subclasses__» является константой ast., а не атрибутом ast., поэтому она никогда не проверяется на наличие списка заблокированных объектов.

Эта уязвимость исправлена ​​в версии 4.5.128.

Показать оригинальное описание (EN)

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.

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Требуется
Нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1