~/ / Articles sur l'IA / 2 117 secrets valides dans des fichiers de configuration MCP publics : ce qu'a trouvé GitGuardian, et comment vérifier le vôtre
2 117 secrets valides dans des fichiers de configuration MCP publics : ce qu'a trouvé GitGuardian, et comment vérifier le vôtre
Un fichier de configuration qui indique à une application d'IA quels serveurs MCP lancer a souvent besoin d'une clé. Le rapport State of Secrets Sprawl 2026 de GitGuardian a dénombré 24 008 secrets uniques dans des fichiers de configuration liés à MCP sur GitHub public, dont 2 117 étaient des identifiants valides. Cet article résume le rapport, explique ce que dit la documentation de Claude Code à propos des fichiers de configuration de projet, et vous permet de vérifier le vôtre.
Publié: · Vérifié par rapport aux sources officielles le 2026-10-24. Cet article les résume et ne les remplace pas.
Ce que le rapport a trouvé
- GitGuardian a publié son rapport State of Secrets Sprawl 2026 le 17 mars 2026. Ses données portent sur 2025.
- Il a dénombré 24 008 secrets uniques exposés dans des fichiers de configuration liés à MCP sur l'ensemble de GitHub public, dont 2 117 identifiants valides uniques.
- Rien qu'en 2025, 28,65 millions de nouveaux secrets codés en dur ont été ajoutés aux commits de GitHub public, ce que le rapport présente comme une hausse de 34 % d'une année sur l'autre.
- Les secrets de services d'IA ont atteint 1 275 105, en hausse de 81 % d'une année sur l'autre.
- Le rapport affirme que le problème est souvent alimenté par la documentation elle-même, qui encourage des pratiques risquées : placer des clés d'API directement dans des fichiers de configuration, des arguments de ligne de commande ou des chaînes de connexion intégrées.
Pourquoi le fichier MCP d'un projet fuit facilement
Claude Code stocke les serveurs MCP de portée projet dans un fichier .mcp.json à la racine du projet, et sa documentation décrit ce fichier comme partagé via le contrôle de version. Une clé qui y est saisie est visible de toute personne qui peut lire le dépôt.
| Portée | Emplacement de stockage | Qui le voit |
|---|---|---|
| Local | ~/.claude.json, sous le chemin du projet | Le projet courant, privé pour vous |
| Projet | .mcp.json à la racine du projet | Le projet courant, partagé via le contrôle de version |
| Utilisateur | ~/.claude.json | Tous vos projets |
Garder la clé hors du fichier
- Claude Code développe ${VAR} et ${VAR:-default} dans command, args, env, url et headers, de sorte que le fichier peut nommer une variable au lieu de contenir la valeur. L'exemple de la documentation écrit un en-tête sous la forme Authorization: Bearer ${API_KEY}.
- Si une variable n'est pas définie et n'a pas de valeur par défaut, la configuration se charge quand même. Claude Code affiche un avertissement et utilise le texte ${VAR} tel qu'il est écrit.
- Dans url et headers d'un serveur distant, certaines variables d'identifiants sont lues comme vides même lorsqu'elles sont définies. La documentation cite ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, AWS_BEARER_TOKEN_BEDROCK, HTTPS_PROXY et NPM_TOKEN comme exemples, et précise qu'une variable nommée API_KEY est développée telle qu'elle est écrite.
- Une valeur écrite dans args ou url est elle aussi stockée dans le fichier, si bien que l'avertissement du rapport sur les arguments de ligne de commande et les chaînes de connexion intégrées s'applique également ici.
Vérifier votre fichier
Le vérificateur ci-dessous lit un fichier .mcp.json ou claude_desktop_config.json dans votre navigateur. Il signale les valeurs qui ressemblent à des secrets écrits dans args, env et headers, en utilisant les mêmes détecteurs que le Prompt Redactor, ainsi que les références de variables que Claude Code lit comme vides. La détection est heuristique : elle peut manquer un secret ou signaler une valeur sans danger.
Essayer: MCP Config Checker
Règles vérifiées au regard de la documentation le 2026-10-23.
Documentation : Claude Code / Model Context Protocol / VS Code
Non vérifié : l'existence d'une commande, l'installation d'un paquet, la réponse d'un serveur distant et les paramètres que d'autres applications interprètent différemment.
Tout s'exécute dans votre navigateur. La configuration n'est pas envoyée.
Avant de coller une configuration dans un chat d'IA
On colle souvent un fichier de configuration dans un chat d'IA pour demander pourquoi un serveur ne démarre pas. Le Prompt Redactor masque les clés d'API, jetons, mots de passe et données personnelles du texte, et peut les rétablir dans la réponse, le tout dans votre navigateur.
Essayer: Prompt Redactor
Texte masqué
Le texte masqué apparaît ici.
L'outil trouve les textes ayant une forme reconnaissable. Il ne peut pas trouver d'informations confidentielles écrites en phrases ordinaires : ne rien trouver ne signifie donc pas que tout est sûr.
Relisez le texte masqué avant de l'envoyer.
Les formats de clés ont été vérifiés dans la documentation des éditeurs et dans les RFC le 2026-10-23.
Tout s'exécute dans votre navigateur. Ni votre texte ni la table de restauration ne sont envoyés.
Si un secret a déjà été commité
- La documentation de GitHub indique que la première étape consiste à révoquer ou renouveler le secret, afin qu'il ne puisse plus servir à accéder aux ressources.
- Après le renouvellement, réécrire l'historique du dépôt n'est peut-être pas justifié, car la révocation du secret peut suffire à résoudre le problème.
- Si le commit existe dans des forks, il y reste accessible. GitHub ne peut pas vous communiquer les coordonnées des propriétaires de ces forks.
- Les commits peuvent rester accessibles par leurs hachages SHA-1 dans les vues en cache de GitHub. Le support GitHub peut supprimer les vues en cache et les références pour des données sensibles dont le risque ne peut pas être réduit par le renouvellement des identifiants.