Критическая уязвимость в Bifrost, open-source шлюзе для ИИ, который направляет запросы более чем к 20 поставщикам LLM, позволяет злоумышленнику без аутентификации выполнять произвольные команды на сервере шлюза с помощью одного HTTP-запроса.
Уязвимость, отслеживаемая как CVE-2026-90898 (оценка CVSS: 9,8), затрагивает все версии HTTP-транспорта Bifrost до 2.1.0, когда аутентификация управления отключена, что является конфигурацией по умолчанию. Исправление доступно в transports/v2.1.0.
Юваль Моравчик из JFrog Security Research, обнаруживший уязвимость, сообщил, что злоумышленник может зарегистрировать MCP-клиент типа stdio с помощью одного неаутентифицированного POST-запроса к конечной точке API управления /api/mcp/client. Bifrost немедленно запускает указанную команду до любого MCP-хендшейка от имени пользователя процесса шлюза.
В официальном образе Docker этим пользователем является appuser. Поскольку шлюз хранит API-ключи для каждого подключенного поставщика, выполнение команд от имени процесса шлюза предоставляет злоумышленнику доступ к этим учетным данным.
Стандартный бинарный файл Bifrost по умолчанию привязывает API управления к localhost, что ограничивает доступ локальной машиной. Официальный образ Docker привязывается к 0.0.0.0, делая API управления доступным извне контейнера, если порт опубликован.
Операторам следует обновиться до transports/v2.1.0, который возвращает 403, когда неаутентифицированный вызывающий абонент пытается зарегистрировать MCP-клиент stdio. Те, кто не может обновиться немедленно, должны установить governance.auth_config.is_enabled в true, использовать надежные учетные данные и держать слушатель управления вне недоверенных сетей.
JFrog рекомендует считать любой экземпляр, работавший с отключенной аутентификацией и открытым API управления, скомпрометированным, а также ротировать виртуальные ключи и API-ключи поставщиков.
Операторы на transports/v2.0.0 по-прежнему затронуты уязвимостью MCP. Этот выпуск исправил только более раннюю уязвимость плагина и не блокирует неаутентифицированную регистрацию. Линейка 1.6.x до 1.6.11 не содержит исправлений.
Вторая связанная уязвимость, обнаруженная Ором Пелесом из той же исследовательской группы, была раскрыта 6 сентября. CVE-2026-86242 (оценка CVSS: 8,1) позволяет злоумышленнику без аутентификации зарегистрировать пользовательский плагин, путь которого является HTTP-URL. Bifrost загружает файл, записывает его как временный разделяемый объект и загружает через функцию Go plugin.Open.
В динамически связанных сборках, которые Bifrost требует для пользовательских плагинов Go, плагин загружается, и его код выполняется от имени пользователя процесса шлюза. В статически связанных сборках, включая официальный образ Docker, plugin.Open завершается ошибкой, и результатом является только подделка запроса на стороне сервера (SSRF). Исправление находится в transports/v2.0.0.
Обе уязвимости имеют одну и ту же корневую причину: API управления Bifrost по умолчанию поставляется с отключенной аутентификацией. Это вторая и третья проблемы безопасности, раскрытые в проекте менее чем за месяц, после не связанной с ними уязвимости SSRF (CVE-2026-55245), исправленной в конце августа.
Уязвимость MCP следует шаблону, который уже привел к реальным атакам. В апреле 2026 года исследователи раскрыли уязвимость проектирования в STDIO-транспорте MCP, затрагивающую официальные SDK Anthropic. Аналогичная уязвимость внедрения команд в LiteLLM, другом шлюзе ИИ, была активно использована и добавлена в каталог известных уязвимых уязвимостей CISA в июне.
Ни одна из CVE Bifrost не фигурирует в каталоге KEV на момент публикации.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Swati Khandelwal




