CVE-2026-39987 (CVSS 9.3) dans Marimo : l'endpoint WebSocket /terminal/ws expose un shell complet sans authentification. Exploitation active en moins de 10 heures après divulgation.
En bref
- CVE-2026-39987 (CVSS 9.3) : l'endpoint WebSocket /terminal/ws de Marimo expose un terminal interactif sans aucune authentification
- Marimo versions 0.20.4 et antérieures sont affectées — mettre à jour vers la version 0.23.0 minimum
- Exploitation active confirmée moins de 10 heures après la publication de l'advisory, avec exfiltration de credentials observée
Les faits
Une vulnérabilité critique d'exécution de code à distance pré-authentification a été découverte dans Marimo, un notebook Python open source de plus en plus populaire dans les communautés data science et machine learning. Référencée CVE-2026-39987 avec un score CVSS de 9.3, cette faille réside dans l'endpoint WebSocket /terminal/ws qui expose un terminal interactif PTY complet sans aucune vérification d'authentification. Contrairement à d'autres endpoints WebSocket de Marimo comme /ws qui appellent correctement la fonction validate_auth() pour vérifier l'identité de l'utilisateur, l'endpoint /terminal/ws se contente de vérifier le mode d'exécution et la compatibilité de la plateforme avant d'accepter les connexions, ignorant totalement la couche d'authentification. La rapidité d'exploitation est particulièrement alarmante : selon les chercheurs de Sysdig, un attaquant a construit un exploit fonctionnel à partir de l'advisory publique et a commencé à l'utiliser en production moins de neuf heures après la divulgation. Dans un cas documenté par un honeypot Sysdig, l'attaquant s'est connecté à l'endpoint vulnérable, a effectué une reconnaissance manuelle deux minutes plus tard, puis est revenu six minutes après pour exfiltrer des fichiers contenant des credentials et des clés SSH. L'opération complète a duré moins de trois minutes.
Marimo est un outil de développement interactif qui permet de créer des notebooks Python réactifs et reproductibles. Son adoption croissante dans les équipes de data engineering et de machine learning en fait une cible intéressante pour les attaquants, car ces environnements contiennent souvent des accès à des bases de données de production, des clés API de services cloud et des datasets sensibles. Cette vulnérabilité illustre parfaitement la tendance de fond des attaques ciblant les outils de développement pour accéder aux environnements de production. Elle rappelle aussi que le temps de réponse face aux vulnérabilités critiques doit se mesurer en heures et non en jours. Les équipes qui utilisent des notebooks interactifs en réseau doivent impérativement revoir leur exposition, comme le souligne la feuille de route cybersécurité française 2026 sur la sécurisation des environnements de développement.
Impact et exposition
Toutes les instances Marimo versions 0.20.4 et antérieures accessibles en réseau sont vulnérables. L'exploitation est triviale : une simple connexion WebSocket à l'endpoint /terminal/ws suffit pour obtenir un shell interactif complet avec les privilèges du processus Marimo. Dans les environnements typiques de data science, le processus Marimo s'exécute souvent avec des privilèges élevés et dispose d'accès directs aux bases de données, aux buckets de stockage cloud et aux registres de modèles ML. L'impact va donc bien au-delà du seul serveur Marimo : credentials exfiltrées, accès aux données de production, et potentiel de mouvement latéral vers l'infrastructure cloud. Le pattern d'attaque observé — reconnaissance puis exfiltration ciblée de credentials en moins de trois minutes — montre que les attaquants sont déjà organisés pour exploiter ce type de faille de manière industrielle. Les organisations exposant des instances Marimo sur des réseaux partagés ou accessibles depuis Internet sont les plus à risque, d'autant plus que des outils similaires comme aws-mcp-server ont récemment montré des failles comparables.
Recommandations
- Mettre à jour Marimo vers la version 0.23.0 ou supérieure immédiatement
- Si la mise à jour n'est pas possible, bloquer ou désactiver l'accès à l'endpoint /terminal/ws via un reverse proxy ou un pare-feu applicatif
- Auditer les credentials et clés SSH présentes sur les serveurs exécutant Marimo — les considérer comme potentiellement compromises si l'instance était exposée
- Effectuer une rotation des secrets et tokens API accessibles depuis les environnements Marimo vulnérables
- Restreindre l'accès réseau aux instances Marimo par VPN ou liste blanche d'adresses IP
Alerte critique
Exploitation active confirmée en moins de 10 heures après la divulgation. Les attaquants ciblent spécifiquement les credentials et les clés SSH. Si votre instance Marimo était accessible en réseau, considérez tous les secrets présents sur le serveur comme compromis et procédez à leur rotation immédiate.
Mon instance Marimo est derrière un VPN, suis-je quand même vulnérable ?
Si votre instance Marimo n'est accessible que via VPN, le risque d'exploitation externe est significativement réduit mais pas nul. Un attaquant ayant compromis un poste VPN ou un autre service du réseau interne pourrait toujours atteindre l'endpoint vulnérable. La mise à jour vers la version 0.23.0 reste indispensable, même derrière un VPN. Le principe de défense en profondeur exige de ne jamais considérer le périmètre réseau comme seule protection.
Comment détecter si mon instance Marimo a été exploitée via CVE-2026-39987 ?
Recherchez dans les logs réseau des connexions WebSocket entrantes sur le chemin /terminal/ws provenant d'adresses IP non reconnues. Vérifiez les logs système du serveur pour des commandes de reconnaissance (whoami, id, ls, cat) exécutées via le processus Marimo. Contrôlez l'intégrité des fichiers de credentials (.env, config, SSH keys) et vérifiez les horodatages d'accès aux fichiers sensibles. Si des connexions suspectes sont détectées, considérez le serveur comme compromis.
Votre infrastructure est-elle exposée ?
Ayi NEDJIMI réalise des audits de sécurité ciblés pour identifier et corriger vos vulnérabilités avant qu'elles ne soient exploitées.
Demander un auditÀ propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris · Habilitation Confidentiel Défense
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur GINA — le module d'authentification de Windows NT4 — et auteur de la version française du guide de sécurité Windows NT4 pour la NSA, il a forgé son expertise au cœur même des systèmes qui protègent des millions d'utilisateurs. Expert Judiciaire auprès de la Cour d'Appel de Paris et titulaire de l'Habilitation Confidentiel Défense, il intervient sur les dossiers les plus sensibles.
À la tête d'Ayi NEDJIMI Consultants, il dirige des missions de pentest d'infrastructures complexes, d'audit Active Directory, de rétro-ingénierie de malwares et de forensics numérique pour les forces de l'ordre et le secteur privé. Conférencier international (Europe & US), il a formé plus de 10 000 professionnels et réalisé plus de 100 missions d'audit — des PME aux grands groupes du CAC 40.
Certifié Microsoft MVP, Cisco CCIE, Juniper JNCIE-SEC et instructeur CEH, il développe également des solutions d'IA sur mesure (RAG, agents LLM, fine-tuning) et publie régulièrement des analyses techniques, guides méthodologiques et outils open source de référence.
Ressources & Outils de l'auteur
Articles connexes
CVE-2026-20160 : RCE root critique dans Cisco SSM On-Prem
Cisco corrige CVE-2026-20160 (CVSS 9.8), une faille critique dans SSM On-Prem permettant l'exécution de commandes root à distance sans authentification. PoC public disponible.
CVE-2026-35616 : zero-day critique dans FortiClient EMS (9.1)
Fortinet corrige en urgence CVE-2026-35616, un zero-day CVSS 9.1 dans FortiClient EMS exploité activement depuis le 31 mars. Hotfix disponible pour les versions 7.4.5 et 7.4.6.
JanelaRAT : le malware bancaire qui frappe l'Amérique latine
JanelaRAT a frappé plus de 26 000 cibles au Brésil et au Mexique en 2025. Ce trojan bancaire évolué utilise le DLL side-loading pour échapper aux détections.
Commentaires (1)
Laisser un commentaire