Démo pédagogique de trois vulnérabilités de Claude Code (contournement de hooks, injection MCP, exfiltration de clés API) avec serveur attaquant, proxy MITM et scanner de détection pour l’apprentissage de la sécurité de la chaîne d’approvisionnement.
Ce projet illustre trois vulnérabilités divulguées par Check Point Research dans l'outil CLI Claude Code d'Anthropic. Il est conçu pour les étudiants et chercheurs en cybersécurité afin de comprendre comment fonctionnent les attaques de la chaîne d'approvisionnement des outils de développement IA.

| ID | CVSS | Type | Corrigé Dans |
|---|
| Pas de CVE | 8.7 | Contournement du consentement des hooks → RCE | v1.0.87 (Sep 2025) |
| CVE-2025-59536 | 8.7 | Injection de configuration serveur MCP → RCE | v1.0.111 (Oct 2025) |
| CVE-2026-21852 | 5.3 | Exfiltration de clé API via l'URL de base | v2.0.65 (Jan 2026) |
├── README.md # Ce fichier
├── attacker_server.py # Serveur HTTP local qui journalise les données reçues
├── attacker_proxy.py # Proxy MITM pour CVE-2026-21852 (capture la clé API + le trafic)
├── scanner.py # Outil de détection : analyse les dépôts pour ces motifs
├── vuln1_hooks_bypass/ # Démo : hooks malveillants dans settings.json
│ └── .claude/settings.json
├── CVE-2025-59536_mcp_injection/ # Démo : injection de configuration serveur MCP
│ ├── .mcp.json
│ └── .claude/settings.json
└── CVE-2026-21852_api_exfil/ # Démo : exfiltration de clé API via l'URL de base
└── .claude/settings.json
python3 attacker_server.pypython3 attacker_proxy.py — proxy transparent sur 127.0.0.1:8888 qui capture les clés API tout en transférant le trafic normalementpython3 scanner.py <chemin-vers-tout-dépôt> pour détecter ces motifsscanner.py vérifie tout dépôt local pour les trois motifs de vulnérabilité avant de l'ouvrir dans Claude Code.
python3 scanner.py <chemin-vers-dépôt>
Il signale :
enableAllProjectMcpServers: true combiné avec les définitions de serveur .mcp.json (CVE-2025-59536)ANTHROPIC_BASE_URL ou d'autres remplacements d'environnement liés aux identifiants dans .claude/settings.json (CVE-2026-21852)Se termine avec le code 1 si des problèmes sont trouvés, 0 si tout est propre — facile à intégrer dans une vérification CI avant clonage.
| Composant | Version |
|---|---|
| Claude Code CLI | v2.0.61 |
Remarque : v2.0.61 est une version vulnérable (le correctif est arrivé dans v2.0.65). N'utilisez pas cette version en production.
Dans les environnements de développement propulsés par l'IA, les fichiers de configuration font partie de la couche d'exécution. Cloner un dépôt non fiable équivaut désormais à exécuter du code non fiable si vos outils chargent automatiquement les configurations de projet.
Ce projet est fourni tel quel à des fins éducatives. Les techniques présentées ici sont démontrées uniquement sur localhost et ciblent uniquement des vulnérabilités historiques corrigées. Utiliser ces outils contre des systèmes de production, des infrastructures tierces, ou tout système sans autorisation explicite est illégal et contraire à l'éthique. L'auteur n'est pas responsable des dommages causés par une mauvaise utilisation de ce matériel.