Chargement en cours...

Assistants de code IA : des mots de passe publiés sur GitHub sans que personne s'en aperçoive

Ce que l'étude d'Apiiro a trouvé dans les fichiers de Claude Code, et les gestes à faire dans vos dépôts dès cette semaine

9 novembre 2026 2LKATIME Cybersécurité
Assistants de code IA : des mots de passe publiés sur GitHub

Image générée par IA (art. 50 AI Act)

🛠️

Analyse 2LKATIME

Le 6 novembre, la société de sécurité Apiiro a publié une étude sur les fichiers de configuration de Claude Code, l'assistant de programmation d'Anthropic. Elle y a trouvé des mots de passe et des clés, enregistrés en clair puis publiés sur GitHub. Le sujet dépasse un outil : tout assistant qui garde la trace de ce qu'on lui fait exécuter pose la même question. Nous nous appuyons ici sur le compte rendu de The Hacker News, daté du 7 novembre.

👔

Un secret publié est un secret perdu

Un mot de passe de base de données ou une clé cloud dans un dépôt public donne accès à vos données, sans qu'aucun pirate n'ait à forcer quoi que ce soit. Parmi les cas relevés : le mot de passe propriétaire d'une base de dossiers médicaux, selon les chercheurs.

Quand un développeur choisit « Yes, and don't ask again » dans Claude Code, l'assistant peut enregistrer la commande telle quelle, secret compris, dans un fichier du projet. Ce fichier part ensuite avec le code, parfois jusque sur GitHub.

Les chercheurs n'ont pas testé si les secrets trouvés fonctionnent encore. Une entreprise prévenue en début de semaine a toutefois confirmé que sa clé était active. Pour une PME, la leçon est simple : le risque ne vient pas d'une attaque sophistiquée, mais d'une habitude commode.


1. Ce que l'étude a trouvé

104 185

Copies du fichier trouvées dans des dépôts GitHub publics

1 122

Copies contenant au moins un secret, soit environ 1,1 %

379

Mots de passe de bases de données parmi les secrets

215

Fichiers à secret que gitleaks et TruffleHog ont tous deux manqués

Apiiro a cherché le fichier .claude/settings.local.json sur GitHub public. Il en a trouvé 104 185 copies dans 103 617 dépôts, dont 1 122 contiennent au moins un secret, pour 1 379 secrets distincts. Plus d'un tiers ouvrent directement une base de données. On compte aussi 43 accès SSH à des serveurs publics, 42 jetons GitHub, GitLab ou npm, et 23 clés AWS. Soixante-trois organisations, surtout des éditeurs de logiciels, figurent parmi les propriétaires.

En ajoutant les anciennes versions des fichiers, un autre fichier de réglages que les équipes partagent volontairement et des journaux de conversation d'agents, le total monte à 2 539 secrets dans 1 994 dépôts. Pour la moitié des dépôts concernés, le fichier était en ligne depuis au moins 217 jours.


2. Comment un secret se retrouve là

Le mécanisme est banal, et c'est ce qui le rend dangereux. Il tient en quatre étapes.

1. L'assistant demande l'autorisation

Par défaut, Claude Code demande avant d'exécuter la plupart des commandes dans un terminal.

2. L'utilisateur choisit « ne plus demander »

Le choix « Yes, and don't ask again » enregistre une règle d'autorisation dans .claude/settings.local.json, à l'intérieur du projet.

3. La règle recopie la commande

Selon la documentation citée par les chercheurs, la règle porte parfois sur un motif de commande, parfois sur la commande exacte. Dans ce second cas, un mot de passe tapé dans la commande est enregistré en clair.

4. Le fichier est publié avec le projet

La protection de Claude Code ajoute le fichier aux exclusions git de l'utilisateur, sur son ordinateur seulement. Un fichier déjà versionné, ou un projet cloné ailleurs, n'en profite pas.

Les chercheurs notent que, dans 539 des 1 105 dépôts qu'ils ont retracés, un commit signé avec Claude en coauteur a modifié le fichier. Ils en déduisent que l'assistant le versionne souvent lui-même. Ils ont reproduit le comportement avec les derniers modèles d'Anthropic, Opus 5.5 et Fable 5.1.


3. Ce que l'article ne dit pas, et ce qu'il faut garder en tête

Trois précisions pour ne rien exagérer. D'abord, 1,1 % des copies contiennent un secret : la grande majorité des fichiers sont sans danger. Ensuite, l'étude ne dit pas si quelqu'un a utilisé ces secrets. Enfin, nous n'avons pas trouvé, dans les sources lues, de réponse publique d'Anthropic. Les chercheurs rapportent que des signalements de ce comportement, dont un daté d'août 2025, ont été clos automatiquement par un robot, sans réponse de l'éditeur.

Notre position : le problème est réel et concret, mais il se corrige par des habitudes simples, détaillées plus bas. Il n'y a pas lieu d'abandonner un outil pour autant, à condition de ne pas lui confier de secrets dans les commandes.


4. Vérifier vos dépôts

Commencez par chercher le fichier dans vos projets, puis dans l'historique de chaque dépôt, y compris là où il a été supprimé :

find . -path "*/.claude/settings*.json"
git log --all --oneline -- .claude/settings.local.json .claude/settings.json

Si le fichier existe, ouvrez-le et repérez les commandes qui contiennent un mot de passe, un jeton ou une clé. Les formes à chercher sont celles que les scanners ratent : une variable précédée de PGPASSWORD=, une option sshpass -p ou mysql -p :

grep -nE "PGPASSWORD|sshpass|mysql .*-p|TOKEN|SECRET|KEY|password" .claude/settings.local.json

Pour une organisation GitHub, la recherche de code du site permet de lister les dépôts concernés avec une requête du type org:VOTRE_ORGANISATION path:.claude/settings.local.json. Pensez aussi aux dépôts de vos prestataires qui travaillent sur vos projets : demandez-leur de faire la même vérification.


5. Que faire, dans l'ordre

Les chercheurs recommandent de changer les secrets avant tout nettoyage, car un secret déjà publié doit être considéré comme compromis. Voici les gestes, par priorité.

Changer les secrets d'abord

Mots de passe de base de données, jetons GitHub, GitLab ou npm, clés AWS, accès SSH : tout ce que le fichier a contenu, y compris dans l'historique. Le nettoyage vient ensuite.

Sortir le fichier du suivi git

Retirez-le du suivi avec git rm --cached, puis ajoutez-le au .gitignore du projet, pas seulement à votre configuration personnelle.

Ne plus taper de secret dans les commandes

Utilisez une variable d'environnement alimentée par un gestionnaire de secrets : la règle enregistrée contiendra $DB_URL et non le mot de passe.

Approuver des motifs, pas des commandes exactes

Autoriser « npm run:* » enregistre un motif sans secret, alors qu'autoriser une commande précise enregistre tout son contenu.

git rm --cached .claude/settings.local.json
echo ".claude/settings.local.json" >> .gitignore
git add .gitignore && git commit -m "Ne plus suivre le fichier local de l'assistant"

Ajoutez les dossiers d'assistants, comme .claude, .cursor ou .gemini, aux contrôles de secrets de votre intégration continue et à votre analyse de l'historique. Vérifiez que l'outil détecte les mots de passe tapés dans des commandes, pas seulement les formats de clés connus : sur les 1 122 fichiers à secret, gitleaks en a signalé 564 et TruffleHog 643, et 215 ont échappé aux deux.


6. Conformité

Si le secret donne accès à une base contenant des données personnelles, sa publication peut constituer une violation de données au sens du RGPD : accès non autorisé possible à des données. L'article 32 impose des mesures de sécurité adaptées, dont la gestion des secrets. En cas de violation avérée ou probable avec un risque pour les personnes, la notification à la CNIL se fait sous 72 heures. Notez la date de découverte, les secrets changés et les journaux d'accès consultés. Les entités soumises à NIS2 ont en plus une alerte précoce à émettre sous 24 heures pour un incident significatif.

Côté gouvernance, incluez les assistants de code dans votre inventaire des outils et dans votre politique de gestion des secrets.


7. Ce que 2LKATIME recommande

Adoptez trois règles pour toute équipe qui utilise un assistant de code : aucun secret saisi en clair dans une commande, un gestionnaire de secrets pour tout ce qui est sensible, et un contrôle automatique des secrets à chaque commit. Nos audits cybersécurité incluent une revue des dépôts et de l'historique, et notre accompagnement IA aide à encadrer l'usage des assistants dans l'entreprise.

Les entreprises de Paris, de Lyon ou de Bordeaux trouveront les formules sur nos pages tarifs. L'accompagnement se fait aussi à distance partout en France.


FAQ - Secrets et assistants de code IA

Mon entreprise utilise Claude Code : sommes-nous concernés ?

Seulement si le fichier .claude/settings.local.json d'un projet contient un secret et a été publié, ou le sera. Les chercheurs ont trouvé ces fichiers dans des dépôts publics. Un dépôt privé n'expose pas le fichier au public, mais le secret y reste en clair pour toute personne ayant accès au dépôt.

Supprimer le fichier de GitHub suffit-il ?

Non. Les anciennes versions restent dans l'historique git et dans les forks du dépôt. La règle donnée par les chercheurs est de changer d'abord tous les mots de passe, jetons et clés que le fichier a contenus, puis de nettoyer.

Mon scanner de secrets va-t-il détecter le problème ?

Pas toujours. Les chercheurs ont testé gitleaks et TruffleHog sur les 1 122 fichiers contenant un secret : le premier en a signalé 564, le second 643, et 215 ont échappé aux deux. Les oublis sont surtout des mots de passe tapés dans des commandes, qui ressemblent à du texte ordinaire.

Comment éviter que le secret soit enregistré ?

Ne tapez pas le secret dans la commande : utilisez une variable d'environnement alimentée par un gestionnaire de secrets. La règle enregistrée contiendra alors le nom de la variable, pas sa valeur. Préférez aussi approuver des motifs de commandes plutôt que des commandes exactes.

Est-ce propre à Claude Code ?

Les chercheurs ont comparé 16 assistants de code et indiquent que Claude Code est le seul dont ils ont confirmé qu'il enregistre par défaut la commande complète dans un fichier du projet. Les dossiers d'autres assistants, comme .cursor ou .gemini, doivent malgré tout être traités avec la même prudence.

Sources

Partager :

Vos dépôts contiennent-ils des secrets sans que vous le sachiez ?

2LKATIME analyse vos dépôts et leur historique, repère les secrets exposés et vous remet un plan de rotation clair, avec des règles simples pour vos équipes et vos assistants de code.