RCE critique dans Marimo : exploitation en 9 heures sans PoC public
La vulnérabilité critique CVE-2026-39987 (CVSS 9,3) affectant les versions de Marimo antérieures à 0.23.0 permet un accès root non autorisé via WebSocket. Sysdig a détecté la première attaque seulement 9 heures et 41 minutes après la publication de l'avis le 8 avril 2026. Les attaquants ont développé un exploit à partir de la description technique seule—sans PoC public—et ont exfiltré des secrets d’un honeypot en moins de trois minutes.
Le point faible réside dans le point d’entrée /terminal/ws : il ne contient pas l’appel à validate_auth() présent dans /ws. Une simple poignée de main WebSocket donne accès à un shell PTY avec privilèges au niveau du processus. Dans les images Docker par défaut, cela signifie un accès root, ainsi qu’une exposition des clés API OpenAI, Anthropic et Google Gemini stockées dans les fichiers .env.
Détails techniques de la vulnérabilité
Marimo utilise les WebSockets pour des connexions persistantes : /ws gère l’interface réactive et les cellules du notebook, tandis que /terminal/ws pilote le terminal intégré. Ce dernier endpoint ne vérifie que les indicateurs de mode terminal et la prise en charge du PTY système—aucune authentification par jeton de session n’est effectuée.
La validation au niveau réseau s’effectue automatiquement. En conséquence, tout client distant peut se connecter et exécuter des commandes avec les privilèges du serveur. GHSA-2679-6MX9-H9XC classe cette faille comme CWE-306 (absence d’authentification pour des fonctions critiques). La correction apportée dans la PR #9098 ajoute le contrôle manquant validate_auth().
Les déploiements Docker amplifient le risque : les processus s’exécutent en tant que root, et les secrets sont stockés dans des fichiers .env ou ~/.aws/credentials. Une compromission entraîne un accès total aux facturations LLM, aux modèles et aux jeux de données.
Chronologie de l’attaque et indicateurs
- 00:00 : Avis publié.
- 09:41 : Première connexion à
/terminal/wsobservée dans le honeypot Sysdig. - <3 min : Navigation dans le système de fichiers, lecture de
.env, des clés SSH, des configurations cloud. - ~1 heure : L’attaquant revient pour vérifier la persistance.
Aucun mineur ni backdoor n’a été déployé—ce qui indique une opération ciblée menée par un attaquant en temps réel. Surveillez le trafic WebSocket via les proxies (nginx access.log, Caddy stdout). Activité suspecte : connexions depuis des IP externes vers /terminal/ws après le 8 avril 2026.
Chemins courants de découverte de secrets :
.env~/.ssh/id_rsa,~/.ssh/id_ed25519~/.aws/credentials~/.config/gcloud/~/.bash_history
Modèle d’exploitation dans les outils IA
Marimo (20k étoiles GitHub) est largement utilisé à Stanford, Mozilla AI, OpenAI et BlackRock. Les déploiements couvrent Docker, Hugging Face Spaces et CoreWeave. Cela marque la troisième RCE en quelques mois :
- Langflow CVE-2026-33017 — exploit dans les 20 heures.
- Flowise CVE-2025-59528 (CVSS 10,0) — exploité après le correctif.
- Marimo CVE-2026-39987.
Les chaînes d’outils IA (notebooks, pipelines) sont souvent traitées comme des outils de développement—ce qui mène à une segmentation faible, une surveillance insuffisante et des privilèges excessifs. La réalité : accès productif aux modèles, aux données et aux systèmes de facturation.
Mesures de protection et étapes d’audit
Mettez à jour immédiatement :
- Exécutez
marimo --versionpour confirmer une version ≥ 0.23.0. - Pour Docker : reconstruisez l’image en utilisant un utilisateur non root (
USER).
Si votre port était exposé après le 8 avril, une compromise est probable. Prenez ces mesures :
- Renouvelez les secrets : clés LLM, identifiants cloud, clés SSH.
- Auditez les logs de facturation OpenAI/Anthropic/Google pour des requêtes inconnues.
- Utilisez
ss -tlnp | grep LISTENpour vérifier si Marimo, Jupyter ou Flowise écoutent sur 0.0.0.0. - Lancez avec
marimo edit --host 127.0.0.1et ajoutez une protection via proxy inverse (auth nginx, OAuth2 Caddy). - Suivez les avis via GitHub Security Advisories, osv.dev et CISA KEV.
Points clés
- Vitesse d’attaque : 9h41 entre l’avis et l’exploitation—typique pour les vulnérabilités bien documentées.
- Accès root par défaut : Marimo Docker nécessite une personnalisation explicite de l’utilisateur.
- Les secrets sont la cible : les fichiers
.envcontenant des clés LLM sont des cibles privilégiées. - Tendance RCE dans l’IA : Troisième RCE consécutif—appel à des pratiques de sécurité production.
- Détection : surveillez les logs de
/terminal/wsdans les proxies ; audit des schémas d’utilisation LLM.
— Editorial Team
Aucun commentaire pour le moment.