Mastodon Mastodon Mastodon Mastodon

Уязвимость в Bifrost позволяет выполнять команды без аутентификации через MCP-регистрацию

Фото автора

CyberSecureFox Editorial Team

Опубликовано:

В открытом AI-шлюзе Bifrost, маршрутизирующем запросы к более чем 20 провайдерам больших языковых моделей, обнаружены две уязвимости, позволяющие неаутентифицированному атакующему выполнять произвольные команды на сервере. Наиболее опасная из них — CVE-2026-90898 — эксплуатируется одним HTTP-запросом к управляющему API при конфигурации по умолчанию. По данным JFrog Security Research, оценка CVSS составляет 9.8. Исправление доступно в версии transports/v2.1.0. Операторам, использующим Bifrost с отключённой аутентификацией управляющего API (настройка по умолчанию), следует немедленно обновиться или применить обходные меры.

Технические детали уязвимостей

CVE-2026-90898: выполнение команд через регистрацию MCP-клиента

Исследователь Юваль Моравчик из JFrog обнаружил, что при отключённой аутентификации управляющего API (параметр governance.auth_config.is_enabled по умолчанию установлен в false) атакующий может отправить единственный POST-запрос на эндпоинт /api/mcp/client и зарегистрировать MCP-клиент типа stdio. Bifrost немедленно запускает указанную в запросе команду от имени процесса шлюза — ещё до завершения MCP-рукопожатия. В официальном Docker-образе процесс выполняется от пользователя appuser.

Затронуты все версии Bifrost HTTP transport до 2.1.0, включая версию 2.0.0 и линейку 1.6.x вплоть до 1.6.11. Поскольку шлюз хранит API-ключи подключённых провайдеров, выполнение команд в контексте процесса шлюза потенциально даёт атакующему доступ к этим учётным данным.

CVE-2026-86242: загрузка вредоносного плагина по HTTP

Вторая уязвимость, CVE-2026-86242, была раскрыта JFrog 6 сентября. По данным исследователей, оценка CVSS — 8.1. Неаутентифицированный атакующий может зарегистрировать пользовательский плагин, указав HTTP-адрес в качестве пути. Bifrost скачивает файл, записывает его как временный разделяемый объект и загружает через функцию plugin.Open в Go.

Воздействие зависит от типа сборки: на динамически скомпонованных сборках (необходимых для пользовательских Go-плагинов) загруженный код выполняется от имени процесса шлюза. На статически скомпонованных сборках, включая официальный Docker-образ, plugin.Open завершается ошибкой, и уязвимость сводится к подделке серверных запросов (SSRF). Исправление доступно начиная с transports/v2.0.0.

Различия в приоритете патчей

Две уязвимости требуют разных решений по обновлению. CVE-2026-90898 устраняется только в версии transports/v2.1.0 — промежуточная версия 2.0.0 по-прежнему уязвима. CVE-2026-86242 исправлена уже в transports/v2.0.0. При этом для типичных развёртываний на основе официального Docker-образа (статическая компоновка) именно CVE-2026-90898 представляет наибольшую угрозу: путь к выполнению произвольных команд работает на этом образе без дополнительных условий. Путь к удалённому выполнению кода через CVE-2026-86242 на том же образе блокируется и сводится лишь к SSRF. Таким образом, обновление до transports/v2.1.0 закрывает обе уязвимости и должно быть приоритетным.

Сетевая экспозиция: бинарный файл и Docker

Степень доступности управляющего API зависит от способа развёртывания. Стандартный бинарный файл Bifrost привязывает управляющий API к localhost, ограничивая доступ локальной машиной. Официальный Docker-образ привязывает его к 0.0.0.0 — если порт опубликован, API становится доступен извне контейнера. Это различие критически важно при оценке реального риска: контейнерные развёртывания с опубликованным портом управления подвержены удалённой эксплуатации без каких-либо дополнительных условий.

Контекст: третья уязвимость за месяц

Обе уязвимости разделяют одну корневую причину — управляющий API Bifrost поставляется с отключённой аутентификацией по умолчанию. Это уже вторая и третья проблемы безопасности, раскрытые в проекте менее чем за месяц: ранее, в конце августа, была исправлена несвязанная SSRF-уязвимость CVE-2026-55245 (подробности о ней подтверждены только исходным новостным материалом; первичный бюллетень не получен).

На момент публикации ни одна из уязвимостей Bifrost не внесена в каталог CISA KEV, и независимых свидетельств активной эксплуатации не обнаружено. Однако существуют публичные доказательства концепции, а схожая уязвимость инъекции команд в другом AI-шлюзе LiteLLM, по данным исходного материала, была добавлена в каталог CISA KEV в июне 2026 года после подтверждённой эксплуатации.

Рекомендации

  • Обновите Bifrost HTTP transport до версии transports/v2.1.0 — это закрывает обе уязвимости. Версия 2.0.0 устраняет только CVE-2026-86242.
  • Если немедленное обновление невозможно — включите аутентификацию управляющего API: установите governance.auth_config.is_enabled в true и задайте надёжные учётные данные.
  • Ограничьте сетевой доступ к управляющему API: не публикуйте порт управления в недоверенные сети, особенно в Docker-развёртываниях.
  • JFrog рекомендует считать скомпрометированным любой экземпляр, который работал с отключённой аутентификацией и доступным извне управляющим API. В таких случаях необходимо ротировать виртуальные ключи и API-ключи провайдеров.
  • Линейка 1.6.x вплоть до 1.6.11 не содержит ни одного из исправлений — миграция на 2.1.0 обязательна.

Обе уязвимости Bifrost — следствие архитектурного решения поставлять управляющий API без аутентификации по умолчанию. Для операторов, использующих Bifrost в контейнерных средах с опубликованным портом управления, единственное надёжное действие — обновление до transports/v2.1.0 с одновременной ротацией всех ключей провайдеров, если экземпляр мог быть доступен извне.


CyberSecureFox Editorial Team

Редакция CyberSecureFox освещает новости кибербезопасности, уязвимости, malware-кампании, ransomware-активность, AI security, cloud security и security advisories вендоров. Материалы готовятся на основе official advisories, данных CVE/NVD, уведомлений CISA, публикаций вендоров и открытых отчётов исследователей. Статьи проверяются перед публикацией и обновляются при появлении новых данных.

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.