ThreatsDay: Adobe RCE, кража кошельков через DNS, побег из контейнера NVIDIA, самовосстанавливающийся бэкдор + 23 других · 2h Silent Lynx использует уязвимость WinRAR для развертывания обратного шелла в атаках на правительства стран СНГ · 5h NGINX устраняет 5 уязвимостей, включая возможное RCE и ошибку TLS, которая может пропустить проверки клиентских сертификатов · 8h Next.js выпустил внеплановое исправление для двух критических уязвимостей RCE в кэшировании и обработке SVG · 8h Drupal устраняет критическую уязвимость RCE в ядре без входа через сторонние модули · 9h Уязвимость в программном обеспечении Sparx Systems Enterprise Architect · 9h Curl устраняет уязвимость 'high' RCE, найденную компанией Anthropic · 9h Уязвимости в телефонных станциях Slican · 10h Palo Alto Networks предупреждает о злоупотреблении уязвимостью в брандмауэрах · 13h Cisco сообщает о активном использовании критической уязвимости в Secure Email Gateway · 14h ThreatsDay: Adobe RCE, кража кошельков через DNS, побег из контейнера NVIDIA, самовосстанавливающийся бэкдор + 23 других · 2h Silent Lynx использует уязвимость WinRAR для развертывания обратного шелла в атаках на правительства стран СНГ · 5h NGINX устраняет 5 уязвимостей, включая возможное RCE и ошибку TLS, которая может пропустить проверки клиентских сертификатов · 8h Next.js выпустил внеплановое исправление для двух критических уязвимостей RCE в кэшировании и обработке SVG · 8h Drupal устраняет критическую уязвимость RCE в ядре без входа через сторонние модули · 9h Уязвимость в программном обеспечении Sparx Systems Enterprise Architect · 9h Curl устраняет уязвимость 'high' RCE, найденную компанией Anthropic · 9h Уязвимости в телефонных станциях Slican · 10h Palo Alto Networks предупреждает о злоупотреблении уязвимостью в брандмауэрах · 13h Cisco сообщает о активном использовании критической уязвимости в Secure Email Gateway · 14h
🛡️
ACyber Sentinel Команда оценки безопасности
← Назад
⚡ Разведотчёт

Критическая уязвимость Bifrost AI Gateway позволяет злоумышленникам выполнять команды без учетных данных

Критическая уязвимость в 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, чтобы читать больше эксклюзивного контента, который мы публикуем.

Упомянутые уязвимости

CVE-2026-90898 CVSS 9.8 CRITICAL Awaiting Analysis
CVE-2026-90898 - Bifrost unauthenticated remote code execution via MCP stdio client registration
Bifrost registers MCP clients through its management API. A stdio client is a command plus args. Bifrost starts that program in the gateway the moment the client is added. No MCP handshake required. The default is governance.auth_config.is_enabled=false. Auth off means every caller is a local admin. One unauthenticated POST /api/mcp/client is enough to run a program as the Bifrost process user (appuser on the official image).  transports/v2.1.0 refuses an unauthenticated stdio registration with 403. transports/v2.0.0 still allows it.
CVE-2026-86242 CVSS 8.1 HIGH Awaiting Analysis
CVE-2026-86242 - Unauthenticated RCE via Custom Plugin HTTP Path on Dynamically Linked Builds
Bifrost HTTP transport before 2.0.0 accepts an enabled custom plugin whose path is an HTTP URL through unauthenticated POST /api/plugins when management authentication is disabled (the default, governance.auth_config.is_enabled=false). The shared-object loader treats an http-prefixed path as a download URL, writes the body to a temporary .so, and passes it to Go's plugin.Open. After a successful open, optional Init runs immediately with the supplied config as the Bifrost process user. On documented dynamically linked builds (DYNAMIC=1 / no static-link flags), which the vendor requires for custom Go plugins, plugin.Open is expected to succeed and this is unauthenticated remote code execution. On the published statically linked Docker image, plugin.Open fails with Dynamic loading not supported, so that build class is only server-side request forgery. Attack complexity is High because the attacker cannot force RCE on the default static image and a loadable plugin must match the host Go version, OS, architecture, and linkage. The 1.6.x HTTP transport line through 1.6.11 does not contain the fix.
CVE-2026-55245 CVSS 8.7 HIGH Deferred
CVE-2026-55245 - Bifrost: SSRF deny-list incomplete: isPublicIP permits CGNAT, IPv6 6to4/NAT64, and site-local in FetchAndEncodeURL
Bifrost is an enterprise AI gateway for routing requests to model providers. Prior to 1.5.17, the isPublicIP function in core/providers/utils/fetch.go, reached through FetchAndEncodeURL for Bedrock and Vertex image or document URLs, classifies Carrier-Grade NAT 100.64.0.0/10, IPv6 6to4 2002::/16, NAT64 64:ff9b::/96 and 64:ff9b:1::/48, and deprecated IPv6 site-local fec0::/10 addresses as public. A remote attacker who controls a multimodal request URL can make the gateway fetch internal services, including a cloud instance metadata endpoint encoded through 6to4 or NAT64. This issue is fixed in version 1.5.17.
CVE-2026-42271 CVSS 8.8 HIGH Analyzed
CVE-2026-42271 - BerriAI LiteLLM Command Injection Vulnerability - [Actively Exploited]
LiteLLM is a proxy server (AI Gateway) to call LLM APIs in OpenAI (or native) format. From version 1.74.2 to before version 1.83.7, two endpoints used to preview an MCP server before saving it — POST /mcp-rest/test/connection and POST /mcp-rest/test/tools/list — accepted a full server configuration in the request body, including the command, args, and env fields used by the stdio transport. When called with a stdio configuration, the endpoints attempted to connect, which spawned the supplied command as a subprocess on the proxy host with the privileges of the proxy process. The endpoints were gated only by a valid proxy API key, with no role check. Any authenticated user — including holders of low-privilege internal-user keys — could therefore run arbitrary commands on the host. This issue has been patched in version 1.83.7.