Descripción de la vulnerabilidad
Una vulnerabilidad crítica ha sido descubierta en Bifrost, un gateway de inteligencia artificial (IA) de código abierto que conecta solicitudes a más de 20 proveedores de modelos de lenguaje. Esta falla permite a un atacante no autenticado ejecutar comandos arbitrarios en el servidor del gateway mediante una única solicitud HTTP. La vulnerabilidad, identificada como CVE-2026-90898 y con un CVSS de 9.8, afecta a todas las versiones de Bifrost HTTP transport anteriores a la 2.1.0, cuando la autenticación de gestión está desactivada, que es la configuración predeterminada.
Mecanismo de ataque
Yuval Moravchick de JFrog Security Research, quien descubrió la vulnerabilidad, explicó que un atacante puede registrar un cliente MCP de tipo stdio mediante un único POST no autenticado al punto final de la API de gestión `/api/mcp/client`. Bifrost ejecuta inmediatamente el comando especificado antes de cualquier apretón de manos de MCP, utilizando el usuario del proceso del gateway. En la imagen oficial de Docker, este usuario es `appuser`. Dado que el gateway almacena claves API para cada proveedor conectado, ejecutar comandos en el proceso del gateway otorga al atacante acceso a esas credenciales.
Consideraciones de seguridad
Por defecto, el binario de Bifrost vincula la API de gestión a `localhost`, lo que limita su exposición a la máquina local. Sin embargo, la imagen oficial de Docker se vincula a `0.0.0.0`, lo que hace que la API de gestión sea accesible desde fuera del contenedor si se publica el puerto. Se recomienda a los operadores actualizar a transports/v2.1.0, que devuelve un 403 cuando un llamador no autenticado intenta registrar un cliente MCP stdio. Aquellos que no puedan realizar la actualización de inmediato deben habilitar `governance.auth_config.is_enabled`, utilizar credenciales fuertes y mantener el listener de gestión desconectado de redes no confiables.
JFrog también aconseja tratar cualquier instancia que haya funcionado con la autenticación desactivada y la API de gestión expuesta como comprometida, recomendando rotar claves virtuales y claves API de proveedores. Los operadores que utilicen transports/v2.0.0 siguen siendo vulnerables a la falla de MCP, ya que esa versión solo solucionó una vulnerabilidad anterior en un plugin y no bloquea el registro no autenticado.
Vulnerabilidades relacionadas
Otra falla relacionada, también descubierta por el equipo de investigación de Moravchick, fue divulgada el 6 de septiembre, identificada como CVE-2026-86242 (CVSS: 8.1). Esta permite a un atacante no autenticado registrar un plugin personalizado cuyo camino es una URL HTTP. Bifrost descarga el archivo, lo escribe como un objeto compartido temporal y lo carga a través de la función `Go.plugin.Open`. En construcciones vinculadas dinámicamente, que Bifrost requiere para plugins de Go personalizados, el plugin se carga y su código se ejecuta como el usuario del proceso del gateway. En construcciones vinculadas estáticamente, incluida la imagen oficial de Docker, `plugin.Open` falla y el resultado es un Server-Side Request Forgery (SSRF). La solución para esta vulnerabilidad se encuentra en transports/v2.0.0.
Ambas vulnerabilidades comparten la misma causa raíz: la API de gestión de Bifrost se entrega con la autenticación desactivada por defecto. Estas son la segunda y tercera vulnerabilidades de seguridad divulgadas en el proyecto en menos de un mes, tras una falla de SSRF no relacionada (CVE-2026-55245) solucionada a finales de agosto. La falla de MCP sigue un patrón que ya ha llevado a ataques en el mundo real. En abril de 2026, se divulgó una falla de diseño en el transporte STDIO de MCP que afecta a los SDK oficiales de Anthropic. Una falla similar de inyección de comandos en LiteLLM, otro gateway de IA, fue explotada activamente y añadida al catálogo de CISA de vulnerabilidades conocidas explotadas en junio. Hasta el momento de esta publicación, ninguna de las CVE de Bifrost aparece en el catálogo de KEV.