veilletech.fr
23 sept. Feed du jour
#02 SÉCURITÉ Faille

Bifrost : une requête, et la passerelle IA obéit

Une passerelle qui détient toutes vos clés ne devrait pas ouvrir son administration par défaut. La vôtre, elle fait quoi ?

JFrog a trouvé dans Bifrost, une passerelle LLM open source, une exécution de commande sans authentification notée 9,8 : un POST sur /api/mcp/client enregistre un client MCP stdio que la passerelle lance aussitôt. L'authentification d'administration est désactivée par défaut et l'image Docker écoute sur 0.0.0.0. Seule transports/v2.1.0 corrige ; les clés des fournisseurs sont à changer.

2 min de lectureintermédiairevidéo 1:24
Partager
Sommaire5 sections
  1. Ce qui se passe
  2. Le mécanisme
  3. Les versions, sans ambiguïté
  4. Ce qu'il faut faire
  5. À retenir

Ce qui se passe

Bifrost (maximhq/bifrost) est une passerelle IA open source : une API unique devant plus de vingt fournisseurs de LLM. Yuval Moravchick, de JFrog Security Research, y a trouvé CVE-2026-90898, notée 9,8 : une exécution de commande à distance, sans authentification, en une seule requête HTTP. Toutes les versions du transport HTTP antérieures à transports/v2.1.0 sont touchées dès que l'authentification d'administration est coupée — c'est le réglage par défaut.

Le mécanisme

L'API d'administration sait enregistrer un client MCP de type stdio, c'est-à-dire un programme local que la passerelle démarre elle-même. Un POST anonyme sur /api/mcp/client suffit : Bifrost lance la commande indiquée sur le champ, avant toute négociation MCP, sous l'utilisateur du processus (appuser dans l'image Docker officielle).

L'exposition dépend de l'installation. Le binaire lie l'API d'administration à localhost ; l'image Docker officielle écoute sur 0.0.0.0, donc depuis l'extérieur du conteneur dès que le port est publié. Et la passerelle conserve les clés d'API de chaque fournisseur branché : exécuter du code dans son processus, c'est y accéder.

Les versions, sans ambiguïté

Version CVE-2026-90898 (client MCP stdio) CVE-2026-86242 (plugin distant)
1.6.x jusqu'à 1.6.11 vulnérable vulnérable
transports/v2.0.0 vulnérable corrigée
transports/v2.1.0 corrigée (réponse 403) corrigée

La seconde faille, CVE-2026-86242 (8,1), signalée par Or Peles et publiée le 6 septembre, permet d'enregistrer un plugin dont le chemin est une URL : Bifrost le télécharge puis le charge avec plugin.Open. Sur une compilation dynamique, requise pour les plugins Go maison, le code s'exécute ; sur une compilation statique, image Docker comprise, l'attaque se limite à une SSRF. Les deux failles ont la même cause, l'administration ouverte par défaut. Une troisième, une SSRF sans rapport (CVE-2026-55245), avait été corrigée fin août.

Le schéma n'est pas théorique : une injection de commande dans LiteLLM, autre passerelle IA, a été exploitée et ajoutée au catalogue KEV de la CISA en juin. Aucune des deux failles de Bifrost n'y figure pour l'instant.

Ce qu'il faut faire

  1. Passer en transports/v2.1.0.
  2. À défaut, activer governance.auth_config.is_enabled avec des identifiants solides, et garder l'écoute d'administration hors des réseaux non fiables.
  3. Toute instance qui a tourné sans authentification, API d'administration joignable, est à considérer comme compromise : faire tourner les clés virtuelles et les clés des fournisseurs, comme le recommande JFrog.

Source : Critical Bifrost AI Gateway Flaw Lets Attackers Run Commands Without Credentials, The Hacker News, 22 septembre 2026, d'après les avis de JFrog Security Research.