voteinutile.fr logo

GitHub Agentic Workflows : une simple issue publique peut siphonner vos dépôts privés

La recette tient en trois ingrédients, et elle est aussi vieille que le premier chatbot piégé. Les workflows agentiques de GitHub, ces automatisations dopées à l’IA qui lisent, écrivent et publient toutes seules, peuvent être détournés par un attaquant via une banale issue publique. Résultat : des données de dépôts privés qui finissent exposées au grand jour, sans qu’aucune ligne de code malveillant n’ait besoin d’être injectée.

Points clés

  • Les workflows agentiques de GitHub peuvent être détournés via une issue publique piégée
  • L’attaque combine trois conditions : lecture d’entrée publique, accès à un dépôt privé, publication visible
  • Il s’agit d’une injection de prompt indirecte, l’agent ne distinguant pas les consignes légitimes du texte malveillant
  • La parade passe par le cloisonnement des workflows et la restriction stricte des permissions

La trifecta gagnante pour l’attaquant

Le scénario ne fonctionne que si trois conditions sont réunies. D’abord, le workflow lit une entrée publique (le contenu d’une issue ou d’un commentaire ouvert à tous). Ensuite, il dispose d’un accès à des dépôts privés. Enfin, il peut publier sa production quelque part de visible : un commentaire, une nouvelle issue, un fichier.

Réunissez ces trois éléments et vous obtenez une chaîne d’exfiltration clé en main. Un attaquant rédige une issue publique bourrée d’instructions déguisées, l’agent la lit comme une consigne légitime, pioche dans le dépôt privé auquel il a accès, puis recrache le tout dans un espace public. La machine a fait exactement ce qu’on lui a demandé. Le problème, c’est qu’elle a obéi à la mauvaise personne.

L’injection de prompt, encore et toujours

Techniquement, il ne s’agit de rien d’autre qu’une injection de prompt indirecte. L’agent ne fait pas la différence entre une instruction de son propriétaire et un texte piégé glissé dans un contenu qu’il ingère. Pour lui, tout est du langage naturel à exécuter.

C’est le péché originel des systèmes agentiques : leur donner à la fois les yeux sur des entrées non fiables, les clés des données sensibles et la parole en public. Chaque capacité prise isolément est inoffensive. Combinées, elles forment un canal de fuite tout confort.

Comment couper le robinet

La parade tient moins de la sorcellerie que du bon sens de cloisonnement. Séparer les workflows qui traitent des entrées publiques de ceux qui touchent aux dépôts privés. Restreindre au strict minimum les permissions accordées à l’agent. Et surtout, ne jamais laisser un même workflow lire du public et écrire du public tout en ayant accès au privé.

La leçon dépasse largement GitHub. À chaque fois qu’on lâche un agent autonome sur des données confidentielles en le nourrissant de contenus venus d’inconnus, on signe un chèque en blanc. L’automatisation intelligente, c’est pratique. Encore faut-il se rappeler qu’un agent obéissant obéit aussi aux ordres qu’on ne lui a pas donnés.

Commentaires