Яндекс.Метрика
Услуги Портфолио О компании Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Безопасность

Максимальный RCE в Ruflo: MCP-мост открывал 233 инструмента без авторизации

30 июля 2026·6 мин чтения
CVE-2026-59726MCP
Максимальный RCE в Ruflo: MCP-мост открывал 233 инструмента без авторизации

Коротко о главном

29 июля 2026 года команда Noma Labs раскрыла уязвимость RufRoot (CVE-2026-59726, CVSS 10.0) в популярной open-source-платформе оркестрации ИИ-агентов Ruflo. MCP-мост платформы — Express.js-сервер на порту 3001 — по умолчанию слушал 0.0.0.0 и отдавал 233 внутренних инструмента без какой-либо аутентификации. Один POST-запрос к инструменту ruflo__terminal_execute давал неаутентифицированному злоумышленнику выполнение произвольных команд в контейнере. Ruflo выпустила исправление в течение суток: уязвимы все версии до 3.16.3 — обновляться нужно немедленно.

Для команд, которые встраивают ИИ-агентов в продукты, это концентрированный урок: агентная инфраструктура — это новая поверхность атаки, и правила информационной безопасности к ней применимы ровно так же, как к любому сетевому сервису. Компонент, открывающий десятки инструментов по сети, обязан требовать авторизацию по умолчанию, а не «по желанию».

Практический вывод короткий: закройте порты 3001 и 27017 на периметре, обновите Ruflo до 3.16.3, ротируйте все LLM-API-ключи и проверьте память агентов на предмет отравления. Ниже — что именно сломалось и почему это важно всем, кто разрабатывает решения на базе ИИ.

Что такое Ruflo и что именно сломалось

Ruflo — это open-source-платформа и харнесс для оркестрации мультиагентных систем: она позволяет разворачивать «рои» автономных агентов, координировать рабочие процессы и строить диалоговые ИИ-системы. Связь между агентами и инструментами идёт через Model Context Protocol (MCP) — стандартный протокол, по которому LLM-агент вызывает внешние функции.

Проблема была в реализации MCP-моста. Это Express.js-сервер, обрабатывающий вызовы инструментов; в конфигурации docker-compose.yml он по умолчанию биндился на 0.0.0.0 и слушал порт 3001. Все 233 доступных инструмента — выполнение shell-команд, операции с базой данных, управление агентами, работа с памятью — экспонировались по HTTP без проверки авторизации. Существующий блок-лист опасных операций (AUTOPILOT_BLOCKED_PATTERNS) применялся только внутри autopilot-потока, а прямой запрос к эндпоинту /mcp обходил его полностью.

Цепочка атаки: от одного запроса до полного захвата

Исследователи Noma Labs (детали эксплуатации привёл специалист Эли Айнхорн) продемонстрировали компрометацию из восьми шагов. Отправной точкой служил единственный неаутентифицированный HTTP-POST на порт 3001, который сразу давал выполнение команд внутри контейнера. Дальше атака разворачивалась по знакомому сценарию.

С этой точки опоры злоумышленник мог: похитить LLM-API-ключи из переменных окружения контейнера; прочитать все пользовательские диалоги из незащищённой базы MongoDB; отравить собственную память ИИ через манипуляции с pattern-хранилищем AgentDB; «завербовать» агентов на выполнение чужих задач; установить постоянный бэкдор и затем зачистить следы. То есть речь не просто про RCE, а про полный контроль над агентной платформой и данными, которые через неё проходят.

Что делать прямо сейчас

Ruflo отреагировала быстро и в течение суток выпустила версию 3.16.3: теперь MCP-мост по умолчанию биндится на loopback, а для публичной привязки требуется явно заданный токен MCP_AUTH_TOKEN. Если вы используете Ruflo, минимальный набор действий по официальной рекомендации выглядит так:

Обновитесь до 3.16.3 или новее — это закрывает саму дыру. Закройте на межсетевом экране порты 3001 (MCP-мост) и 27017 (MongoDB), чтобы они не смотрели в интернет. Ротируйте все LLM-API-ключи: если сервис был доступен извне, считайте их скомпрометированными. Проверьте pattern-хранилище AgentDB на инъекции и MongoDB — на несанкционированные изменения. Пересоберите контейнеры из чистых образов, если есть подозрение на бэкдор.

Что это значит для команд разработки

RufRoot — частный случай общей проблемы: инструменты, которые вчера жили в песочнице разработчика, сегодня открываются по сети и становятся частью продакшена. MCP-мосты, агентные харнессы, серверы инструментов для LLM — всё это сетевые сервисы, и к ним применимы базовые требования: аутентификация по умолчанию, привязка к loopback вместо 0.0.0.0, принцип наименьших привилегий и явный allow-list вместо надежды на блок-лист.

Особая опасность агентных платформ — в том, что скомпрометированный агент не только выполняет команды, но и хранит ключи к внешним LLM-провайдерам и историю диалогов, а его «память» можно отравить так, что вредоносное поведение переживёт перезапуск. Поэтому командам, которые встраивают ИИ-агентов в свои продукты, стоит инвентаризировать все MCP-эндпоинты, вынести их за периметр, добавить аутентификацию и заложить security-ревью агентной инфраструктуры в цикл разработки — до релиза, а не после инцидента.

Часто задаваемые вопросы

Что такое CVE-2026-59726? Это критическая уязвимость (CVSS 10.0) в open-source-платформе оркестрации ИИ-агентов Ruflo, получившая кодовое имя RufRoot. MCP-мост платформы отдавал 233 внутренних инструмента по HTTP без авторизации, что позволяло неаутентифицированному злоумышленнику выполнять произвольные команды.

Какие версии затронуты и как исправить? Уязвимы все версии Ruflo до 3.16.3. Исправление — обновление до 3.16.3 или новее; после патча MCP-мост по умолчанию слушает loopback и требует токен MCP_AUTH_TOKEN для публичной привязки.

Достаточно ли только обновиться? Обновление закрывает дыру, но если сервис был доступен из сети, нужно исходить из того, что он мог быть скомпрометирован: закрыть порты 3001 и 27017, ротировать LLM-API-ключи, проверить AgentDB и MongoDB на подмену и при подозрении пересобрать контейнеры из чистых образов.

Источники

Noma Security — RufRoot: The MCP Bridge Vulnerability That Turns Agents Into Rogue Admins (CVE-2026-59726), 29 июля 2026 года (первоисточник, компания-первооткрыватель).

The Hacker News — Ruflo MCP Flaw Lets Unauthenticated Attackers Run Commands and Poison AI Memory, июль 2026 года.

Dark Reading — Patch-Resistant 'RufRoot' Flaw Can Unleash Malicious AI Agent Swarms, июль 2026 года.

Материал подготовлен редакцией YuSMP Group по открытым источникам. Нужна экспертиза по теме или разработка под задачу — обсудим проект.