На главную

Уязвимость Bifrost AI Gateway позволяет выполнять команды без аутентификации

2 мин
Уязвимость Bifrost AI Gateway позволяет выполнять команды без аутентификации

Материал подготовлен искусственным интеллектом на основе нескольких источников — ссылки на оригиналы приведены ниже.

Критическая уязвимость в Bifrost, открытом AI-шлюзе, позволяет неаутентифицированным злоумышленникам выполнять произвольные команды на сервере с помощью одного HTTP-запроса. Уязвимость CVE-2026-90898 с оценкой CVSS 9,8 затрагивает все версии до 2.1.0 при отключённой аутентификации управления, что является настройкой по умолчанию. Исправление доступно в transports/v2.1.0.

Ключевые факты

  • CVE-2026-90898 имеет оценку CVSS 9,8 и затрагивает все версии HTTP-транспорта Bifrost до 2.1.0 при отключённой аутентификации управления.
  • Злоумышленник может зарегистрировать MCP-клиент типа stdio через один неаутентифицированный POST-запрос к /api/mcp/client, что заставляет Bifrost немедленно выполнить указанную команду.
  • Официальный Docker-образ привязывает API управления к 0.0.0.0, что делает его доступным извне контейнера, если порт опубликован.
  • JFrog рекомендует считать скомпрометированным любой экземпляр, работавший с отключённой аутентификацией и открытым API управления, и ротировать виртуальные ключи и ключи API провайдеров.
  • Вторая уязвимость, CVE-2026-86242 с CVSS 8,1, позволяет неаутентифицированно зарегистрировать пользовательский плагин по HTTP-URL, что приводит к выполнению кода на динамически слинкованных сборках.

Детали уязвимости

Уязвимость, отслеживаемая как CVE-2026-90898, позволяет неаутентифицированному злоумышленнику выполнять произвольные команды на сервере шлюза с помощью одного HTTP-запроса. Юваль Моравчик из 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 провайдеров.

Связанная уязвимость плагинов

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

1 источник

Время · отставание