PraisonAI — это система мультиагентных команд. В версиях похвалы с 3.9.26 по 4.6.57 и с 0.12.12 по 1.6.57 хвалеонаиагентов функция включения рабочего процесса уязвима для выполнения кода. Workflow._execute_include() неявно импортирует и запускает включенный рецепт в файл tools.py через необработанный вызов importlib.util.spec_from_file_location() и spec.loader.exec_module(), не принимая во внимание параметры автозагрузки PRAISONAI_ALLOW_TEMPLATE_TOOLS/PRAISONAI_ALLOW_LOCAL_TOOLS или маршрутизацию через централизованный безопасный загрузчик, который защищает другие инструменты.py пути автозагрузки. В результате рабочий процесс, включающий локальный каталог рецептов, контролируемый злоумышленником, выполняет произвольный код Python на уровне модуля во время установки включения, до любого синтаксического анализа дочернего рабочего процесса или вызова модели, и тот же приемник доступен через API рецептов praisonai.recipe.run() более высокого уровня.
Злоумышленник, который может заставить процесс-жертву запустить рабочий процесс или рецепт, включающий ненадежный локальный рецепт, достигает выполнения произвольного кода Python от имени пользователя процесса PraisonAI, вариант, который обходит усиление защиты, примененное к ранее раскрытому семейству автоматических рекомендаций Tools.py RCE. Эта проблема исправлена в версии praisonai 4.6.58 и praisonaiagents 1.6.58.
Показать оригинальное описание (EN)
PraisonAI is a multi-agent teams system. In versions 3.9.26 through 4.6.57 of praiseonai and 0.12.12 through 1.6.57 of praiseonaiagents, the workflow "include" feature is vulnerable to code execution. Workflow._execute_include() implicitly imports and runs an included recipe's tools.py via a raw importlib.util.spec_from_file_location() and spec.loader.exec_module() call, without honoring the PRAISONAI_ALLOW_TEMPLATE_TOOLS/PRAISONAI_ALLOW_LOCAL_TOOLS autoload opt-in gates or routing through the centralized safe loader that protects the other tools.py autoload paths. As a result, a workflow that includes an attacker-controlled local recipe directory executes arbitrary module-level Python code during include setup, before any child workflow parsing or model call, and the same sink is reachable through the higher-level praisonai.recipe.run() recipe API. An attacker who can cause a victim process to run a workflow or recipe that includes an untrusted local recipe achieves arbitrary Python code execution as the PraisonAI process user, a variant that bypasses the hardening applied to the previously disclosed automatic tools.py RCE advisory family. This issue has been fixed in version 4.6.58 of praisonai and 1.6.58 of praisonaiagents.
Характеристики атаки
Последствия
Строка CVSS v3.1