Apiiro a découvert des secrets dans 1 122 fichiers de paramètres publics de Claude Code, après que des approbations de commandes enregistrées ont conservé des identifiants en texte brut.
Comment une approbation enregistrée peut exposer des secrets
Claude Code peut demander une autorisation avant d’exécuter une commande shell et proposer de la mémoriser. En choisissant « Oui, et ne plus poser la question », une règle d’autorisation est enregistrée dans .claude/settings.local.json. Si la commande autorisée contient un mot de passe ou un jeton, la règle peut l’enregistrer en texte brut. Apiiro a reproduit ce phénomène avec différents modèles Claude, ce qui semble mettre en cause la gestion des autorisations par Claude Code plutôt qu’un modèle en particulier.
Lorsqu’ils déboguent une connexion à une base de données ou un déploiement, les développeurs peuvent transmettre des identifiants à des outils en ligne de commande, sous forme de variable d’environnement ou d’argument. Des demandes répétées d’autorisation peuvent aussi les inciter à approuver une commande une fois pour passer à autre chose. Apiiro a précisé que cette explication était une déduction fondée sur le flux de travail et les formats de commande relevés par les chercheurs.
Ce qu’Apiiro a découvert dans les fichiers publics
Apiiro a trouvé au moins un secret dans 1 122 des 104 185 copies publiques de settings.local.json sur GitHub. Ces fichiers contenaient 1 379 secrets distincts. En tenant compte de l’historique Git plus ancien, des fichiers de paramètres partagés et des transcriptions d’agent enregistrées, les chercheurs ont recensé 2 539 secrets dans 1 994 dépôts.
Ces secrets comprenaient des mots de passe de bases de données, des identifiants SSH, des jetons de plateformes logicielles et des clés cloud. Ce décompte montre qu’il y a eu exposition, mais ne signifie pas que tous les identifiants étaient encore valides ou ont été utilisés à mauvais escient. Apiiro a indiqué qu’une organisation qu’elle avait alertée avait confirmé qu’une clé était toujours active, mais la société n’a pas établi que des attaquants avaient utilisé les secrets découverts.
Pourquoi les fichiers peuvent rester exposés
La documentation d’Anthropic indique que Claude Code ajoute le fichier de paramètres local aux exclusions globales de Git de l’utilisateur lorsqu’il le crée pour la première fois dans un dépôt qui ne l’exclut pas déjà. Cette protection s’applique à la machine du développeur, pas au projet partagé. Elle ne peut ni annuler le suivi d’un fichier déjà ajouté à Git ni effacer les copies présentes dans l’historique du dépôt et dans ses forks.
Le 4 décembre 2025, un développeur a signalé une exposition similaire dans le gestionnaire des problèmes de GitHub d’Anthropic, expliquant que des identifiants contenus dans le fichier de paramètres local s’étaient retrouvés dans un dépôt public. Ce signalement montrait que le risque avait été relevé avant qu’Apiiro n’en mesure l’ampleur.
Les mots de passe intégrés à la syntaxe ordinaire des commandes peuvent ne pas correspondre aux formats habituels des clés d’API, et échapper ainsi aux outils génériques de détection de secrets. Les fichiers de configuration d’agents, les transcriptions et d’autres données de travail peuvent également contenir des identifiants. Une clé valide peut ouvrir une voie d’accès à une base de données, à un compte cloud ou à une chaîne d’approvisionnement logicielle ; sa portée dépend de ce à quoi elle donne accès.
Ce qu’Anthropic et les organisations peuvent faire
Boris Cherny, responsable de Claude Code chez Anthropic, a reconnu le problème et déclaré que l’entreprise étudiait des mesures de protection, notamment le mode automatique et une détection élémentaire des secrets. Selon les dernières informations disponibles, il s’agissait de propositions, et non d’une correction confirmée ou d’une mise à jour dont la date de sortie aurait été annoncée.
Les organisations peuvent rechercher ces fichiers dans leurs dépôts et leur historique, renouveler les identifiants exposés, puis supprimer ou assainir les copies suivies par Git. Supprimer un fichier ne suffit pas à rendre secret un identifiant déjà publié.