Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-39987 — marimo est un notebook Python réactif. Avant la version 0.23.0, Marimo présente une vulnérabilité d'exécution de code à distance (RCE) avant authentification. | Kitploit
Outils/GitHubGitHub/nxploited/cve-2026-39987
Escalade de PrivilègesExploitationExploitation d'Applications WebCollecte d'InformationsTests d'IntrusionRed TeamingOutil d'Accès à Distance
GitHubnxploited/cve-2026-39987

CVE-2026-39987

marimo est un notebook Python réactif. Avant la version 0.23.0, Marimo présente une vulnérabilité d'exécution de code à distance (RCE) avant authentification.

Voir le dépôt
113il y a 5 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-39987

marimo est un notebook Python réactif. Avant la version 0.23.0, Marimo présente une vulnérabilité RCE Pre-Auth.

   ___  _        ___     __  __  __  __      ___  __  __  _______
  / (_)(_|   |_// (_)   /  )/  \/  )/       /   \/  |/  |/  \   /
 |       |   |  \__       /|    | /| __       __/\_/|\_/|\__/  / 
 |       |   |  /   -----/ |    |/ |/  \-----   \   |   |/  \ /  
  \___/   \_/   \___/   /___\__//___\__/    \___/   |   |\__//   

CVE-2026-39987

Marimo /terminal/ws — RCE Pre-Auth via WebSocket non authentifié

Scanner de masse · Énumération complète · Détection intelligente


Python CVE Severity Type Platform License


Auteur : Nxploited  ·  Telegram : @KNxploited


📢 Rejoignez le canal Telegram pour les derniers zero-days & exploits gratuits :

🔗 Nxploited ZeroDay Hub — t.me/KNxploited


📖 Présentation

CVE-2026-39987 est une vulnérabilité critique d'exécution de code à distance avant authentification (Pre-Authentication Remote Code Execution) affectant Marimo, une plateforme open-source de notebooks Python réactifs.

Le point de terminaison WebSocket /terminal/ws ne comporte aucune validation d'authentification, ce qui permet à tout attaquant distant non authentifié d'obtenir un shell PTY complet et d'exécuter des commandes système arbitraires avec les privilèges du processus en cours — souvent root dans les déploiements conteneurisés.

Contrairement à d'autres points de terminaison WebSocket comme /ws, qui invoquent correctement validate_auth() avant d'accepter les connexions, le point de terminaison /terminal/ws ne vérifie que le mode d'exécution et la compatibilité de la plateforme, en sautant entièrement l'authentification.

✅ Corrigé dans : marimo >= 0.23.0 ❌ Toutes les versions antérieures à 0.23.0 sont vulnérables


🔍 Détails de la vulnérabilité

PropriétéValeur
Identifiant CVECVE-2026-39987
Logiciel affectémarimo < 0.23.0
Classe de vulnérabilitéRCE Pre-Auth via WebSocket non authentifié
Point de terminaison affecté/terminal/ws
Vecteur d'attaqueRéseau
Authentification requise❌ Aucune
Interaction utilisateur❌ Aucune
Sévérité🔴 Critique
ImpactShell PTY complet · Exécution de commandes arbitraires
Version corrigéemarimo 0.23.0

🧩 Cause racine

/ws          →  calls validate_auth()  ✅  Authentication enforced
/terminal/ws →  skips validate_auth()  ❌  No authentication

Le gestionnaire /terminal/ws vérifie uniquement :

  1. Si le serveur fonctionne dans le bon mode
  2. Si la plateforme prend en charge l'émulation de terminal

Il ne valide jamais les jetons de session, les cookies ou toute forme d'identité — ce qui fait de chaque instance Marimo exposée un shell direct.


✨ Fonctionnalités

  • 🔥 Scanner de masse — Analyse des milliers de cibles en concurrence avec des pools de threads configurables
  • 🧠 Détection intelligente de l'environnement — Détection automatique : Marimo · cPanel/WHM · Plesk · Apache · Nginx · Docker · Node.js · applications Python
  • 🐚 Accès shell PTY complet — Shell WebSocket non authentifié avec émulation de terminal complète
  • 📓 Énumération des notebooks — Découverte et lecture récursives de tous les notebooks Marimo .py
  • 🔑 Collecte de jetons — Extraction des jetons Marimo depuis les arguments CLI, les variables d'environnement et les fichiers journaux
  • 🗄️ Découverte de bases de données — Sondage automatique de MySQL · PostgreSQL · Redis · SQLite · DuckDB
  • 🔐 Extraction d'identifiants — Fichiers .env · wp-config.php · clés privées SSH · /etc/shadow
  • 📂 Vérification de web shell (Nx Drop) — Écrit et vérifie via HTTP un fichier de preuve de concept dans la racine web
  • 📊 Sortie structurée par cible — Chaque cible obtient son propre répertoire de sortie organisé
  • 🎨 Interface terminal riche — Interface professionnelle avec code couleur, panneaux, suivi de progression et statistiques en direct

⚙️ Prérequis

Python 3.10 or higher

Installer les dépendances :

pip install websockets rich requests urllib3

Ou en utilisant le fichier requirements :

pip install -r requirements.txt

requirements.txt

websockets
rich
requests
urllib3

🚀 Utilisation

Étape 1 — Préparez votre fichier de cibles

Créez un fichier nommé targets.txt avec une cible par ligne. L'outil accepte tous les formats :

192.168.1.100
192.168.1.101:2718
10.10.10.50:2718
https://notebook.example.com
wss://secure.notebook.io
marimo.target.local:2718

Formats pris en charge : IP seule · IP:port · domaine · domaine:port · http:// · https:// · ws:// · wss://


Étape 2 — Lancez le scanner

python3 CVE-2026-39987.py

Étape 3 — Configuration interactive

  ▸ Targets file  (default: targets.txt) : targets.txt
  ▸ Threads       (default: 50)          : 100

Plage de threads : 1–300. Recommandé : 50–150 selon votre réseau.


🖥️ Aperçu de la sortie

Interface terminal

  ╭──────────────────────────────────────────────────────────╮
  │ CVE-2026-39987  ·  Marimo WebSocket RCE                  │
  │ MASS SCANNER  ·  FULL ENUM  ·  SMART DETECT              │
  │ By: Nxploited  ·  github.com/Nxploited  ·  @KNxploited   │
  ╰──────────────────────────────────────────────────────────╯

  ══════════════ ws://192.168.1.100:2718/terminal/ws ══════════

  ╭────────────────────────────────────────╮
  │  ◈◈◈  ROOT ACCESS  ◈◈◈                │
  │  ws://192.168.1.100:2718               │
  │  uid ▸  uid=0(root)  groups=[root]     │
  ╰────────────────────────────────────────╯

  ──  ENVIRONMENT  ──────────────────────────────────────────
    ✦  Type                  MARIMO
    ◈  Docker                True
    ◈  Marimo version        0.22.1
    ◈  Notebook directory    /app/notebooks

  ──  MARIMO — NOTEBOOKS  ───────────────────────────────────
    ✦  Notebooks             7 found
       ·                     /app/notebooks/analysis.py
       ·                     /app/notebooks/data_pipeline.py
       ·                     /app/notebooks/etl_job.py

  ──  MARIMO — TOKENS  ──────────────────────────────────────
    ✦  Token CLI             secret-token-abc123xyz
    ✦  .marimo.toml          /root/.marimo.toml

  ──  /etc  SENSITIVE  ──────────────────────────────────────
    ✦  /etc/shadow           READABLE  [42 entries]
    ◈  /etc/passwd           [42 lines]
    ◈  /etc/crontab          [12 lines]

  ──  SSH KEYS  ─────────────────────────────────────────────
    ✦  /root/.ssh/id_rsa     FOUND
    ✦  /root/.ssh/id_ed25519 FOUND

  ──  DATABASES  ────────────────────────────────────────────
    ✦  MySQL                 DATABASES LISTED
    ✦  Redis                 PONG — NO AUTH
    ✦  DuckDB files          /app/notebooks/data.duckdb

  ──  SENSITIVE ENV VARS  ───────────────────────────────────
    ✦  DATABASE_URL          postgresql://admin:p4ss@db:5432/prod
    ✦  AWS_SECRET_ACCESS_KEY redacted...

  ──  NX FILE DROP  ──────────────────────────────��──────────
    ✦  Shell write           /app/notebooks/Nx.py
    ✦  HTTP access           http://192.168.1.100:2718/Nx.py
Télécharger l’outil