Un outil de codage autonome qui est chargé d’exécuter un dépôt GitHub apparemment inoffensif pourrait lancer une charge utile malveillante qui reste invisible pour les outils de sécurité et les examinateurs humains.
Des chercheurs du réseau de recherche Zero Day Investigative Network (0DIN) de Mozilla signalent que cette compromission se produit sans qu’aucun code d’exploit ne soit nécessaire, sans avertissement et sans qu’une commande suspecte doive être approuvée. Ils ont montré qu’un attaquant peut installer un shell interactif sur l’appareil d’un développeur en utilisant Claude Code pour exécuter un projet cloné.
Cette nouvelle méthode d’attaque repose sur trois éléments qui, pris séparément, ne présentent aucune menace et n’éveillent aucun soupçon.
- Un dépôt GitHub qui semble propre, avec des instructions d’installation standard comme l’installation de dépendances et l’initialisation du projet.
- Le package Python est conçu pour refuser de s’exécuter tant qu’il n’est pas initialisé. Il génère une erreur qui invite l’utilisateur à exécuter la commande `python3 -m axiom init`. Claude Code interprète ce message comme un problème de configuration normal et lance automatiquement la commande suggérée pour tenter de résoudre l’erreur.
- L’exécution de `python3 -m axiom init` appelle un script shell qui récupère une valeur de configuration stockée dans un enregistrement DNS TXT contrôlé par l’attaquant. Cette valeur est ensuite exécutée comme une commande.
Les chercheurs de 0DIN précisent que cette approche ne nécessite aucun composant malveillant dans le dépôt cloné. L’agent automatise toute la chaîne d’attaque, ce qui inclut une étape qui imite une erreur utilisateur courante.
Si l’attaque réussit, l’attaquant obtient un shell qui fonctionne avec les privilèges du développeur. Cela lui donne accès aux variables d’environnement, aux clés API, aux fichiers de configuration locaux et la possibilité d’établir une persistance sur le système.
Les chercheurs expliquent que Claude Code n’a jamais pris la décision d’ouvrir un shell. Il a seulement décidé de corriger une erreur. Le reverse shell se trouve à trois niveaux d’indirection de ce que l’outil a réellement évalué : un message d’erreur qu’il a cru, un script qui a récupéré une valeur, et un enregistrement DNS qu’il n’a jamais vu. L’attaquant se retrouve alors avec un shell interactif qui s’exécute sous l’identité de l’utilisateur développeur.
Bien que cette méthode d’attaque ne soit pour l’instant qu’un concept, 0DIN avertit que des acteurs malveillants pourraient facilement diffuser de tels dépôts GitHub via de fausses offres d’emploi, des tutoriels, des billets de blog ou des messages directs.
Pour empêcher ce type d’exploitation, 0DIN recommande que les agents d’IA révèlent la chaîne d’exécution complète des commandes d’installation. Cela doit inclure les scripts et le code qui sont récupérés dynamiquement pendant l’exécution.
