En bref

  • La CVE-2026-39987 (CVSS 9.3) permet une exécution de code à distance sans authentification sur Marimo, un notebook Python open source.
  • La faille a été exploitée dans la nature moins de 10 heures après la publication de l'advisory, selon Sysdig.
  • Toutes les versions jusqu'à 0.20.4 sont vulnérables ; la correction est disponible dans la version 0.23.0.

Ce qui s'est passé

Marimo est un notebook Python open source de plus en plus populaire dans la communauté data science et machine learning. Des chercheurs ont découvert que son endpoint WebSocket /terminal/ws ne valide aucune authentification, contrairement aux autres endpoints comme /ws qui appellent correctement la fonction validate_auth(). Un attaquant non authentifié peut ainsi obtenir un shell PTY complet et exécuter des commandes système arbitraires sur le serveur hôte.

La vulnérabilité, référencée CVE-2026-39987 avec un score CVSS de 9.3, a été rendue publique début avril 2026. Selon les observations de Sysdig, des tentatives d'exploitation ont été détectées dans la nature en moins de 10 heures, un délai qui illustre la rapidité avec laquelle les attaquants intègrent les nouvelles failles dans leurs arsenaux. Ce constat rejoint les observations faites sur d'autres outils IA récemment ciblés, comme la faille sandbox escape dans PraisonAI ou la vulnérabilité CVSS 10 dans Flowise AI.

Toutes les versions de Marimo jusqu'à la 0.20.4 incluse sont affectées. L'équipe de développement a publié un correctif dans la version 0.23.0. Les instances exposées sur Internet sans proxy d'authentification sont les plus à risque, car l'exploitation ne nécessite aucun identifiant.

Pourquoi c'est important

Cette faille met en lumière un problème récurrent dans l'écosystème des outils de data science et d'IA : la sécurité est souvent sacrifiée au profit de la facilité d'utilisation. Les notebooks Python sont fréquemment déployés sur des serveurs accessibles depuis le réseau, parfois directement sur Internet, pour faciliter la collaboration. Un shell complet sans authentification transforme chaque instance vulnérable en point d'entrée pour un attaquant.

Le délai d'exploitation de 10 heures confirme une tendance préoccupante : les fenêtres de remédiation se réduisent drastiquement. Les équipes de sécurité ne peuvent plus compter sur des jours ou des semaines pour appliquer les correctifs. Cette réalité est d'autant plus critique pour les outils IA qui manipulent des données sensibles et ont souvent accès à des ressources GPU coûteuses, comme le soulignait notre analyse sur la surface d'attaque de l'IA agentique. La faille rappelle aussi les risques des contournements d'authentification dans Docker, un autre composant fréquent des environnements data science.

Ce qu'il faut retenir

  • Mettez à jour Marimo vers la version 0.23.0 ou ultérieure sans délai.
  • Ne jamais exposer un notebook Python directement sur Internet sans reverse proxy avec authentification.
  • Surveillez les connexions WebSocket inhabituelles sur vos instances de notebooks et outils IA.

Comment protéger mes notebooks Python contre ce type de faille ?

Placez toujours vos notebooks derrière un reverse proxy (Nginx, Traefik) avec authentification forte. Limitez l'accès réseau aux seules adresses IP autorisées via des règles de pare-feu. Désactivez les fonctionnalités terminal si elles ne sont pas nécessaires. Enfin, maintenez vos outils à jour et surveillez les advisories de sécurité des projets que vous utilisez.

Besoin d'un accompagnement expert ?

Ayi NEDJIMI vous accompagne sur vos projets cybersécurité et IA.

Prendre contact