Критична уязвимост в Bifrost, AI портал (gateway) с отворен код, който пренасочва заявки към повече от 20 LLM доставчици, позволява на неавтентифициран атакуващ да изпълнява произволни команди на сървъра на портала с една-единствена HTTP заявка.

Уязвимостта, проследявана като CVE-2026-90898 (CVSS оценка: 9.8), засяга всички версии на Bifrost HTTP транспорта преди 2.1.0, когато автентификацията за управление е изключена, което е конфигурацията по подразбиране. Корекция за сигурност е налична в transports/v2.1.0.

Ювал Моравчик от JFrog Security Research, който открива уязвимостта, съобщава, че даден атакуващ може да регистрира MCP клиент от тип stdio чрез една-единствена неавтентифицирана POST заявка към крайната точка на API за управление /api/mcp/client. Bifrost стартира посочената команда незабавно, преди каквото и да е MCP ръкостискане (handshake), от името на потребителя, работещ с процеса на портала.

В официалното Docker изображение този потребител е appuser. Тъй като порталът съхранява API ключове за всеки свързан доставчик, изпълнението на команди в процеса на портала предоставя на атакуващия достъп до тези идентификационни данни.

Стандартният бинарен файл на Bifrost свързва API за управление с localhost по подразбиране, което ограничава излагането до локалната машина. Официалното Docker изображение се свързва с 0.0.0.0, което прави API за управление достъпно отвън контейнера, ако портът е публикуван.

Операторите трябва да обновят до transports/v2.1.0, която връща код 403, когато неавтентифициран заявител се опита да регистрира stdio MCP клиент. Тези, които не могат да инсталират корекции за сигурност веднага, трябва да зададат 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 изтегля файла, записва го като временен споделен обект и го зарежда чрез функцията plugin.Open на Go.

При динамично компилирани версии (dynamically linked builds), които Bifrost изисква за персонализирани Go плъгини, плъгинът се зарежда и неговият злонамерен код се изпълнява от името на потребителя на процеса на портала. При статично компилирани версии, включително официалното Docker изображение, plugin.Open се проваля и резултатът е само фалшифициране на заявки от страна на сървъра (SSRF). Корекцията е в transports/v2.0.0.

И двете уязвимости споделят една и съща първопричина: API за управление на Bifrost се предоставя с деактивирана автентификация по подразбиране. Те са второто и третото проблемно място по сигурността, разкрити в проекта за по-малко от месец, след несвързана SSRF уязвимост (CVE-2026-55245), коригирана в края на август.

MCP уязвимостта следва модел, който вече доведе до реални атаки. През април 2026 г. изследователи разкриха проектна грешка в STDIO транспорта на MCP, която засяга официалните SDK на Anthropic. Подобна уязвимост за инжектиране на команди в LiteLLM, друг AI портал, бе активно експлоатирана и добавена към каталога на CISA за познати експлоатирани уязвимости (KEV) през юни.

Нито една от двете Bifrost CVE уязвимости не присъства в KEV каталога към момента на публикуването.