En bref

  • CVE-2026-39987 (CVSS 9.3) : exécution de code à distance sans authentification dans Marimo, notebook Python open-source
  • Versions affectées : Marimo <= 0.20.4 — correctif disponible en version 0.23.0
  • Action urgente : mettre à jour immédiatement vers Marimo 0.23.0 ou désactiver l'accès réseau aux instances exposées

Les faits

La CVE-2026-39987, publiée le 10 avril 2026 avec un score CVSS de 9.3, affecte Marimo, une plateforme de notebooks Python utilisée en data science et analyse de données. Cette vulnérabilité critique de type pré-authentification permet à un attaquant distant d'obtenir un shell PTY complet et d'exécuter des commandes système arbitraires sans aucune authentification préalable.

Le problème réside dans l'endpoint WebSocket /terminal/ws qui ne valide pas l'authentification des connexions entrantes. Contrairement aux autres endpoints WebSocket de l'application (comme /ws) qui appellent correctement la fonction validate_auth(), l'endpoint terminal vérifie uniquement le mode d'exécution et la compatibilité plateforme avant d'accepter les connexions, contournant totalement la vérification d'identité.

L'équipe Sysdig Threat Research a déployé des instances Marimo vulnérables en honeypot sur plusieurs fournisseurs cloud et a observé des tentatives d'exploitation moins de 10 heures après la divulgation publique. L'attaquant a construit un exploit fonctionnel directement à partir de la description de l'advisory, s'est connecté à l'endpoint terminal non authentifié et a exploré manuellement l'environnement compromis à quatre reprises sur une période de 90 minutes.

Impact et exposition

Toute instance Marimo version 0.20.4 ou antérieure exposée sur le réseau est vulnérable. L'exploitation ne nécessite aucun identifiant ni interaction utilisateur : un simple accès réseau au port de l'application suffit. L'attaquant obtient un accès shell complet avec les privilèges du processus Marimo, ce qui peut mener à une compromission totale du serveur, une exfiltration de données, ou un pivotement vers d'autres systèmes du réseau.

La CISA a ajouté cette vulnérabilité à son catalogue KEV (Known Exploited Vulnerabilities), confirmant l'exploitation active en conditions réelles. Les agences fédérales américaines avaient jusqu'au 11 avril 2026 pour appliquer les correctifs. Les environnements de data science et de machine learning, souvent déployés avec des configurations réseau permissives, sont particulièrement exposés.

Recommandations immédiates

  • Mettre à jour Marimo vers la version 0.23.0 qui corrige la vulnérabilité — advisory Marimo Security Advisory GHSA-2026-39987
  • Si la mise à jour n'est pas immédiatement possible, restreindre l'accès réseau aux instances Marimo via des règles de pare-feu ou un reverse proxy avec authentification
  • Vérifier les logs d'accès pour toute connexion suspecte à l'endpoint /terminal/ws
  • Auditer les instances Marimo exposées sur Internet via un scan de surface d'attaque

⚠️ Urgence

Exploitation active confirmée par CISA et Sysdig. Les attaquants exploitent cette faille moins de 10 heures après sa divulgation. Toute instance Marimo non patchée et accessible depuis le réseau est une cible immédiate. Appliquez le correctif sans délai.

Comment savoir si je suis vulnérable ?

Vérifiez la version de Marimo installée avec la commande pip show marimo ou marimo --version. Si la version affichée est inférieure ou égale à 0.20.4, votre instance est vulnérable. Vérifiez également si le port de l'application est accessible depuis l'extérieur de votre réseau local avec ss -tlnp | grep marimo ou un scan Nmap ciblé.

Votre infrastructure est-elle exposée ?

Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.

Demander un audit