Présentation de la vulnérabilité MCP
Une faille classée CVE-2026-90898 (CVSS 9.8) affecte le composant HTTP transport de Bifrost, passerelle open‑source qui orchestre les requêtes vers plus de vingt fournisseurs de grands modèles de langage. Toutes les versions antérieures à 2.1.0 sont concernées tant que l’authentification du module de gestion reste désactivée, ce qui constitue la configuration par défaut. La faille permet à un attaquant non authentifié d’envoyer une unique requête HTTP POST vers l’endpoint /api/mcp/client et d’enregistrer un client MCP de type stdio sans aucune négociation préalable.
Mécanisme d’exploitation et impact
Lors de l’enregistrement, Bifrost lance immédiatement la commande spécifiée dans le corps de la requête, sous l’identité du processus passerelle. Dans l’image Docker officielle, cet utilisateur est appuser. Le processus possède en mémoire les clés API de chaque fournisseur LLM, ce qui signifie que la compromission du processus donne un accès direct à ces secrets. Le serveur de gestion, lié à 0.0.0.0 dans le conteneur, expose l’API au réseau extérieur dès que le port est publié, augmentant la surface d’attaque. Le résultat est une exécution de code à distance sans aucune authentification préalable.
curl -X POST http://host:8080/api/mcp/client \
-d '{"command":"/bin/sh -c \"whoami; cat /etc/passwd\""}'
Analyse des correctifs et mesures d’atténuation
Le correctif officiel, disponible dans le répertoire transports/v2.1.0, renvoie un code 403 lorsqu’une requête non authentifiée tente d’enregistrer un client MCP. Les versions 2.0.0 restent vulnérables, car elles ne corrigent que le défaut de plugin précédent. Les branches 1.6.x jusqu’à 1.6.11 ne contiennent aucune correction. En attendant la mise à jour, les opérateurs doivent activer governance.auth_config.is_enabled, définir des identifiants forts et restreindre l’écoute du gestionnaire aux réseaux de confiance. JFrog recommande de considérer toute instance avec l’authentification désactivée comme compromise et de procéder à la rotation des clés virtuelles ainsi que des clés API des fournisseurs.
Vulnérabilités connexes et contexte
Une seconde faille, CVE-2026-86242 (CVSS 8.1), permet l’enregistrement d’un plugin personnalisé via une URL HTTP. Le serveur télécharge le fichier, le stocke comme bibliothèque partagée et l’exécute avec plugin.Open de Go. Sur les builds dynamiquement liés, le code du plugin s’exécute avec les mêmes privilèges que le processus passerelle ; sur les builds statiquement liés (dont l’image Docker officielle), l’opération échoue, limitant l’impact à une SSRF. Les deux failles partagent la même cause racine : l’authentification du management API désactivée par défaut. Elles s’ajoutent à un SSRF (CVE-2026-55245) corrigé en août et à des incidents réels similaires observés dans les SDK MCP d’Anthropic et le projet LiteLLM, ce dernier étant déjà listé dans le catalogue KEV de la CISA. Aucun des deux CVE de Bifrost n’apparaît encore dans le catalogue KEV.