Критическая уязвимость в Bifrost, открытом AI шлюзе, который маршрутизирует запросы к более чем 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's plugin.Open.
На динамически связанных сборках, которые Bifrost требует для пользовательских плагинов Go, плагин загружается, и его код выполняется от имени пользователя процесса шлюза. На статически связанных сборках, включая официальный образ Docker, plugin.Open не удается, и результатом является только серверная подделка запроса. Исправление находится в transports/v2.0.0.
Обе уязвимости имеют одну и ту же коренную причину: API управления Bifrost поставляется с отключенной аутентификацией по умолчанию. Это вторая и третья проблемы безопасности, раскрытые в проекте менее чем за месяц, после не связанной уязвимости SSRF (CVE-2026-55245), исправленной в конце августа.
Уязвимость MCP следует шаблону, который уже привел к реальным атакам. В апреле 2026 года исследователи раскрыли проектную уязвимость в транспорте STDIO MCP, которая затрагивает официальные SDK Anthropic. Подобная уязвимость инъекции команд в LiteLLM, другом AI шлюзе, активно эксплуатировалась и была добавлена в каталог известных уязвимостей CISA в июне.
Ни одна из уязвимостей Bifrost CVE не появляется в каталоге KEV на момент публикации.
Нашли эту статью интересной? Подписывайтесь на нас в Google News, Twitter и LinkedIn, чтобы читать больше эксклюзивного контента, который мы публикуем.