RufRoot : la vulnérabilité critique (CVSS 10.0) dans Ruflo qui ouvre un shell distant sans authentification
IA

Image d’illustration générée par IA

RufRoot : la vulnérabilité critique (CVSS 10.0) dans Ruflo qui ouvre un shell distant sans authentification

La faille RufRoot (CVSS 10.0) dans Ruflo permet une exécution de code à distance sans authentification. Analyse, impact et correctif de cette vulnérabilité.

Texte généré par intelligence artificielle, publié sans relecture humaine. Transparence IA

Introduction

Le 30 juin 2026, les chercheurs de Noma Labs (Noma Security) ont révélé une faille de sécurité de gravité maximale dans le projet open source Ruflo, une plateforme d’orchestration multi-agents très répandue parmi les développeurs en IA (plus de 66 500 étoiles sur GitHub). Baptisée RufRoot et suivie sous le nom CVE-2026-59726, la vulnérabilité a obtenu un score CVSS de 10.0 – le maximum possible – car elle permet l’exécution de commandes arbitraires à distance sur toute instance accessible, sans nécessiter d’identifiants. Le mainteneur a publié un correctif en moins de 24 heures, mais toutes les installations antérieures à la version 3.16.3 restent exposées à un risque de compromission totale.

Analyse technique

Le cœur du problème réside dans la configuration par défaut du bridge MCP (Model Context Protocol) fournie avec les fichiers Docker Compose de Ruflo. L’image officielle exposait le port 3001/tcp sur toutes les interfaces réseau (0.0.0.0), sans activer aucun mécanisme d’authentification. Le bridge MCP sert de point de liaison pour l’invocation des outils de l’agent : dans Ruflo, pas moins de 233 outils sont disponibles, dont terminal_execute, qui permet l’exécution directe de commandes shell à l’intérieur du conteneur.

Un attaquant peut exploiter la faille simplement en envoyant une requête HTTP POST non authentifiée à l’endpoint du bridge. La charge utile permet d’exécuter n’importe quelle commande dans le contexte du conteneur, obtenant ainsi de fait un shell interactif. Comme les conteneurs sont souvent exécutés avec des privilèges élevés ou avec un accès à l’hôte, la compromission peut rapidement s’étendre à l’infrastructure sous-jacente. Le correctif (version 3.16.3) résout le problème à plusieurs niveaux : il restreint le bridge MCP à l’interface de boucle locale (127.0.0.1), introduit des contrôles côté serveur sur l’outil terminal_execute et active l’authentification pour MongoDB.

Impact

Les conséquences pour une instance vulnérable sont dévastatrices et touchent de multiples aspects :

  • Exécution arbitraire de commandes (RCE) – Une seule requête HTTP permet de prendre le contrôle total du conteneur et, dans de nombreux scénarios, du nœud hôte.
  • Vol d’identifiants – Les clés API des fournisseurs LLM (Anthropic, OpenAI, etc.) sont lisibles depuis l’intérieur du conteneur et sont donc entièrement exposées.
  • Empoisonnement de la mémoire IA – L’attaquant peut injecter des motifs malveillants dans AgentDB, la base de données d’apprentissage persistante de Ruflo, modifiant de manière subreptice les réponses générées par l’IA pour tous les futurs utilisateurs.
  • Exfiltration de données – Les conversations, documents et tout contenu conservé sur la plateforme deviennent accessibles.
  • Persistance et porte dérobée (backdoor) – Il est possible d’écrire des charges utiles malveillantes dans le répertoire /app, de créer des essaims d’agents contrôlés par l’attaquant et de maintenir un accès à long terme même après un redémarrage.

Mitigation

Pour sécuriser l’environnement, il est nécessaire d’intervenir sur plusieurs fronts :

  1. Mettre à jour Ruflo immédiatement vers la version 3.16.3 ou ultérieure, dans laquelle le bridge MCP est restreint en local et l’exécution des commandes est soumise à vérification.
  2. Bloquer au niveau réseau les ports 3001 et 27017 (MongoDB) via un pare-feu ou des groupes de sécurité, pour empêcher l’accès direct depuis l’extérieur.
  3. Renouveler toutes les clés API des fournisseurs LLM utilisées dans la configuration, en les considérant comme compromises.
  4. Auditer l’AgentDB pour identifier les entrées suspectes dans le magasin de motifs et supprimer toute injection éventuelle.
  5. Inspecter MongoDB en vérifiant l’intégrité des collections et la présence de modifications non autorisées.
  6. Reconstruire les conteneurs à partir d’une image propre, éliminant ainsi toute modification persistante laissée par un éventuel attaquant.

FAQ

1. Qu’est-ce que Ruflo et pourquoi est-il si répandu ?
Ruflo (initialement Claude Flow) est une plateforme open source d’orchestration d’agents IA, conçue pour simplifier les flux de travail complexes intégrant des modèles tels que Claude Code et OpenAI Codex. Avec plus de 66 500 étoiles sur GitHub, il est devenu un outil de référence pour les développeurs et les entreprises souhaitant automatiser des tâches via des LLM, aussi bien en environnement de test qu’en production.

2. Comment savoir si mon instance est attaquable ?
Si vous exécutez une version de Ruflo antérieure à la 3.16.3 et que le port 3001 est exposé sur le réseau public ou sur un réseau non fiable, l’instance est vulnérable. Un symptôme concret est que le bridge MCP réponde à des requêtes HTTP sans jeton d’authentification. Par précaution, il est toutefois fortement conseillé de mettre à jour et d’appliquer les mesures de mitigation sans attendre de vérifications invasives.

3. Au-delà de la mise à jour, quelles sont les étapes vraiment urgentes ?
Après avoir effectué la mise à niveau, renouvelez immédiatement toutes les clés API des fournisseurs LLM, car elles doivent être considérées comme dérobées. Bloquez l’accès réseau aux ports 3001 et 27017 et inspectez l’AgentDB pour repérer d’éventuelles commandes ou motifs suspects. Enfin, reconstruisez les conteneurs à partir d’une image officielle propre et vérifiez MongoDB pour vous assurer qu’aucune modification malveillante n’a été introduite.

À lire aussi

Sources

Cet article est une réécriture originale fondée sur les sources ci-dessous.

CVE traitées dans cet article

Sujets liésRufRootRuflo vulnérabilitéCVE-2026-59726CVSS 10.0faille de sécuritéRCE sans authentificationbridge MCP
Retour à l'accueil