RufRoot в Ruflo открывала удалённый запуск команд и отравление памяти ИИ

29 июля 2026 года стало известно о критической уязвимости CVE-2026-59726 в Ruflo — платформе оркестрации ИИ-агентов для Claude Code и OpenAI Codex. Ошибка с оценкой CVSS 10.0 затрагивает все версии до 3.16.3 и позволяет удалённо выполнять команды без аутентификации.
Почему открытый MCP-мост опасен
В стандартной конфигурации docker-compose MCP-мост Ruflo слушал порт 3001 на всех сетевых интерфейсах. Через него были доступны 233 инструмента: выполнение команд оболочки, операции с базами данных, управление агентами и сохранение памяти.
Если инсталляция была доступна по сети, злоумышленнику хватало одного HTTP POST-запроса к MCP, чтобы вызвать terminal_execute и получить оболочку внутри контейнера. Реальная доступность зависела от межсетевых экранов, групп безопасности и сегментации сети.
От кражи ключей до отравления памяти
После захвата контейнера атакующий мог прочитать API-ключи поставщиков LLM, выгрузить пользовательские диалоги, запускать собственные рои агентов за счёт жертвы и размещать постоянный бэкдор в каталоге /app. Отдельный риск — изменение шаблонов в хранилище AgentDB, влияющих на будущие ответы системы.
Стандартная конфигурация открывала MCP-мост и MongoDB на всех интерфейсах. Это позволяло получить оболочку, прочитать ключи провайдеров и сохранить отравленный шаблон в AgentDB, направляющий последующие ответы ИИ.
Noma Security сообщила об ошибке 30 июня 2026 года. Сопровождающий проекта Reuven Cohen выпустил исправление менее чем за 24 часа: мост теперь по умолчанию привязан к loopback-интерфейсу, terminal_execute контролируется серверными ограничениями executeTool, а для MongoDB включена аутентификация.
Компаниям с доступными извне инсталляциями недостаточно установить Ruflo 3.16.3. На практике нужно закрыть порты 3001 и 27017, заменить все LLM API-ключи, проверить AgentDB и MongoDB на вмешательство, а контейнеры пересобрать из чистого образа. Иначе последствия компрометации могут сохраняться после обновления.

