voteinutile.fr logo

Ghostcommit : quand une image PNG pirate votre agent IA pour siphonner vos secrets

Une image innocente vaut mille lignes de code malveillant. Des chercheurs viennent de baptiser « Ghostcommit » une technique aussi élégante que perverse : cacher une injection de prompt dans un fichier PNG pour berner les agents IA qui relisent votre code. Le fichier passe tranquillement sous le nez des relecteurs automatiques, puis manipule un agent de code jusqu’à lui faire recracher vos secrets.

Points clés

  • Ghostcommit dissimule une injection de prompt dans un fichier PNG, ignoré par les relecteurs de code IA
  • Les outils CodeRabbit et Bugbot n’ouvrent jamais les images, créant un angle mort exploitable
  • L’agent de code est manipulé pour lire le fichier .env et encoder les secrets en liste de nombres

Une injection planquée dans les pixels

Le principe de l’attaque repose sur un angle mort savoureux. Les relecteurs de code assistés par IA comme CodeRabbit et Bugbot n’ouvrent jamais les fichiers image. Un PNG déposé dans une pull request est donc du terrain vierge, idéal pour y dissimuler une injection de prompt (prompt injection) invisible à l’inspection classique.

La charge malveillante reste dormante jusqu’à ce qu’un agent de code, lui, se penche sur le contenu. Une fois la consigne cachée interprétée, l’agent obéit sagement : il va lire le fichier .env du dépôt, celui-là même qui concentre clés d’API, jetons et autres mots de passe qu’on préfère garder loin des regards.

Des secrets déguisés en liste de chiffres

La partie la plus retorse arrive ensuite. Plutôt que d’exfiltrer les secrets en clair (ce qui déclencherait des alarmes), l’agent est convaincu d’écrire chaque secret directement dans le code sous forme d’une banale liste de nombres. Aux yeux d’un scanner ou d’un humain pressé, rien qu’une suite anodine d’entiers. En réalité, l’intégralité du contenu du .env encodée, prête à être récupérée par l’attaquant.

La démonstration signe un défaut structurel des chaînes d’outils IA : chaque maillon fait confiance au précédent sans vérifier ce qu’il ingère vraiment. Le relecteur ignore les images, l’agent fait confiance au relecteur, et personne ne se demande pourquoi un PNG donne soudain des ordres.

La leçon pour les développeurs

Ghostcommit rappelle une vérité désormais familière : tout contenu qu’un agent IA peut lire est une surface d’attaque potentielle, y compris les fichiers qu’on croyait purement décoratifs. Confier les clés du dépôt à un assistant qui gobe sans broncher tout ce qui traîne dans une pull request, c’est offrir une porte dérobée avec le sourire.

Commentaires