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@ayinedjimi-consultants.fr
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 le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Articles connexes
FIRESTARTER : APT persistant sur les pare-feu Cisco ASA
CISA et le NCSC britannique alertent sur FIRESTARTER, un implant déployé par l'APT UAT-4356 sur les pare-feu Cisco ASA et Firepower. Le malware survit aux patchs et aux reboots logiciels.
ADT confirme une fuite : ShinyHunters menace 10 M de clients
Le géant américain de la sécurité résidentielle ADT confirme une fuite après une attaque vishing sur Okta SSO. ShinyHunters revendique 10 millions de dossiers et fixe un ultimatum au 27 avril.
Pack2TheRoot CVE-2026-41651 : root Linux pour tous (8.8)
Une faille critique dans PackageKit (CVE-2026-41651, CVSS 8.8) permet à tout utilisateur Linux non privilégié d'obtenir root sur la majorité des distributions, du serveur Ubuntu LTS au poste Fedora.
Commentaires (1)
Laisser un commentaire