GitHub peut héberger un dépôt sans fichier malveillant visible et conduire malgré tout un agent IA à exécuter une commande dangereuse. Des chercheurs de 0DIN, le programme de sécurité IA de Mozilla, l’ont démontré avec Claude Code. Il s’agit d’une preuve de concept : aucune campagne exploitant cette méthode n’a été confirmée.
Claude Code lance l’attaque en essayant d’installer le projet
Le scénario commence par une demande banale. Un développeur transmet à Claude Code le lien d’un dépôt GitHub et lui demande d’installer le projet.
Le dépôt contient du code, des dépendances et des instructions d’installation classiques. Aucun malware évident n’apparaît dans les fichiers analysés.
Lors du lancement, le programme affiche une erreur indiquant qu’une initialisation est nécessaire. L’agent considère cette étape comme une correction normale et exécute la commande proposée.
L’attaque débute à ce moment précis.
La commande dangereuse n’apparaît pas sur GitHub
Le script d’initialisation consulte un enregistrement DNS contrôlé par l’attaquant. Celui-ci renvoie une valeur contenant l’instruction malveillante.
La charge finale est donc récupérée au moment de l’exécution. Elle ne figure pas directement dans le dépôt, ce qui complique sa détection par une simple analyse du code source.
Claude Code ne reçoit aucune consigne explicite lui demandant d’installer un malware. L’agent croit seulement résoudre une erreur pour terminer l’installation.
La chaîne repose sur trois éléments apparemment ordinaires : un dépôt GitHub, une étape d’initialisation et un script qui récupère une donnée sur Internet. Le risque apparaît lorsque l’agent les exécute automatiquement les uns après les autres.
L’attaquant récupère les droits du compte utilisé
Dans la démonstration de 0DIN, la commande distante ouvre un accès interactif à l’ordinateur. Cet accès dispose des mêmes permissions que le compte ayant lancé l’agent.
L’attaquant pourrait consulter les fichiers accessibles, lire certaines variables d’environnement ou récupérer des identifiants présents sur la machine. Les clés d’API, jetons GitHub et accès cloud font partie des données exposées.
Il pourrait aussi modifier des fichiers ou des paramètres pour conserver son accès.
Le danger dépend donc des permissions accordées à l’agent. Un outil lancé dans un conteneur isolé et privé d’identifiants sensibles limite les dégâts. Un agent utilisé sur l’ordinateur principal avec un accès libre au terminal augmente fortement le risque.
Les scanners ne voient pas toujours la charge finale
Les outils de sécurité examinent surtout les fichiers du dépôt, les dépendances et les commandes visibles. Cette analyse perd en efficacité lorsque le contenu dangereux est téléchargé depuis une infrastructure externe.
L’attaquant peut modifier la charge distante sans publier de nouveau fichier sur GitHub. L’historique du dépôt ne montre alors aucune évolution apparente de la menace.
Un scanner statique peut repérer qu’un script contacte un service extérieur. Il ne connaît pas forcément la donnée qui sera renvoyée au moment de l’installation.
De son côté, le développeur peut seulement voir un message indiquant que le projet fonctionne, alors que la commande distante a déjà été exécutée.
L’autonomie des agents IA accélère l’exécution
Une installation manuelle oblige généralement le développeur à lire des consignes, saisir plusieurs commandes et examiner chaque erreur. Ces étapes peuvent révéler un comportement inhabituel.
Un agent de programmation peut installer les dépendances, appliquer une correction et relancer le projet sans demander une validation détaillée pour chaque action.
Cette automatisation fait gagner du temps, mais elle permet aussi à une attaque de progresser plus vite. L’agent peut accepter une consigne malveillante dès lors qu’elle ressemble à une procédure technique classique.
Selon 0DIN, le contenu non fiable ne se limite plus au code source. Une instruction dangereuse peut se cacher dans une documentation, un message d’erreur, une dépendance ou une donnée récupérée à distance.
Une fausse offre d’emploi peut suffire à piéger un développeur
Un attaquant pourrait diffuser le lien vers le dépôt dans une fausse offre d’emploi, un tutoriel, un billet de blog ou un message adressé directement à un développeur.
La victime demanderait ensuite à son agent IA d’installer le projet pour le tester. La confiance accordée à GitHub pourrait réduire sa méfiance, même si le programme télécharge ensuite du contenu depuis d’autres services.
Aucune attaque utilisant précisément cette méthode n’a été observée à ce jour. La démonstration montre uniquement ce qu’un pirate pourrait obtenir dans certaines conditions.
Isoler l’agent limite les conséquences
Les projets inconnus ne devraient pas être installés directement sur la machine principale. Une machine virtuelle, un conteneur ou un environnement temporaire réduit l’accès aux fichiers personnels et aux identifiants.
Les agents ne devraient pas non plus disposer d’une autorisation permanente pour exécuter toutes les commandes. Les scripts d’installation, les téléchargements externes et les commandes de configuration doivent être contrôlés avant leur lancement.
Les clés d’API et les jetons inutiles doivent rester hors de l’environnement utilisé. Un agent compromis ne peut pas dérober un identifiant auquel il n’a pas accès.
0DIN recommande également d’afficher toute la chaîne d’exécution : scripts lancés, services contactés et données téléchargées. L’utilisateur pourrait ainsi voir davantage que la première commande demandée.
Un dépôt GitHub propre ne garantit plus une installation sûre
La démonstration ne prouve pas que Claude Code ou les autres agents exécutent systématiquement des commandes malveillantes. Tous les projets utilisant des ressources externes ne sont pas dangereux non plus.
Elle montre que l’analyse des seuls fichiers visibles sur GitHub peut devenir insuffisante. Il faut aussi contrôler les ressources contactées pendant l’installation et limiter les permissions accordées à l’agent.
La sécurité dépend désormais autant du dépôt que de tout ce que l’agent télécharge et exécute ensuite.
Sources
- Clone This Repo and I Own Your Machine — 0DIN
- Clean GitHub repo tricks AI coding agents into running malware — BleepingComputer

Samuel Le Goff suit l’actualité des smartphones, des systèmes d’exploitation mobiles et de l’intelligence artificielle depuis plus de 14 ans. Il couvre notamment Samsung, Xiaomi, Apple, Android, iOS et les grandes tendances du numérique.
