CVE-2026-40156

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

PraisonAI — это система мультиагентных команд. До версии 4.5.128 PraisonAI автоматически загружал файл с именемtools.py из текущего рабочего каталога для обнаружения и регистрации пользовательских инструментов агента. Этот процесс загрузки использует importlib.util.spec_from_file_location и немедленно выполняет код уровня модуля через spec.loader.exec_module() без явного согласия пользователя, проверки или изолированной программной среды.

Файл Tools.py загружается неявно, даже если он не указан в файлах конфигурации или явно не запрошен пользователем. В результате простого размещения файла с именемtools.py в рабочем каталоге достаточно, чтобы запустить выполнение кода. Такое поведение нарушает ожидаемую границу безопасности между файлами проекта, управляемыми пользователем (например, конфигурациями YAML), и исполняемым кодом, поскольку ненадежный контент в рабочем каталоге рассматривается как доверенный и выполняется автоматически.

Если злоумышленник может поместить вредоносный файл Tools.py в каталог, где пользователь или автоматизированная система (например, конвейер CI/CD) запускает praisonai, выполнение произвольного кода происходит сразу после запуска, до того, как запустится какая-либо логика агента. Эта уязвимость исправлена ​​в версии 4.5.128.

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

PraisonAI is a multi-agent teams system. Prior to 4.5.128, PraisonAI automatically loads a file named tools.py from the current working directory to discover and register custom agent tools. This loading process uses importlib.util.spec_from_file_location and immediately executes module-level code via spec.loader.exec_module() without explicit user consent, validation, or sandboxing. The tools.py file is loaded implicitly, even when it is not referenced in configuration files or explicitly requested by the user. As a result, merely placing a file named tools.py in the working directory is sufficient to trigger code execution. This behavior violates the expected security boundary between user-controlled project files (e.g., YAML configurations) and executable code, as untrusted content in the working directory is treated as trusted and executed automatically. If an attacker can place a malicious tools.py file into a directory where a user or automated system (e.g., CI/CD pipeline) runs praisonai, arbitrary code execution occurs immediately upon startup, before any agent logic begins. This vulnerability is fixed in 4.5.128.

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

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

Последствия

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

Строка CVSS v3.1