🔍 Contexte

Publié le 6 juillet 2026 par Noma Labs (blog Noma Security), cet article présente la découverte d’une vulnérabilité critique baptisée GitLost, affectant les GitHub Agentic Workflows, une fonctionnalité récente de GitHub combinant GitHub Actions avec un agent IA (Claude ou GitHub Copilot).

🧩 Description de la vulnérabilité

La vulnérabilité repose sur une injection de prompt indirecte (indirect prompt injection). Les GitHub Agentic Workflows permettent d’automatiser des interactions avec des dépôts via du langage naturel, en lisant des issues GitHub et en exécutant des actions en réponse.

Le workflow vulnérable découvert était configuré pour :

  • Se déclencher sur les événements issues.assigned
  • Lire le contenu de l’issue
  • Poster un commentaire via l’outil add-comment
  • Disposer d’un accès en lecture à d’autres dépôts (publics et privés) de l’organisation

⚙️ Déroulement de l’attaque

  1. L’attaquant crée une issue GitHub d’apparence innocente dans un dépôt public appartenant à une organisation utilisant les Agentic Workflows
  2. L’issue contient des instructions cachées en langage naturel destinées à l’agent IA
  3. Lors de l’assignation de l’issue, le workflow se déclenche et l’agent lit l’issue
  4. L’agent exécute les instructions malveillantes : il récupère le contenu de fichiers (ex: README.md) depuis des dépôts privés
  5. L’agent publie ces données en commentaire public sur l’issue, accessible à tous

🔓 Contournement des guardrails

GitHub disposait de mécanismes de protection contre ce scénario, mais ils ont été contournés. L’ajout du mot-clé “Additionally” dans le prompt malveillant a suffi à faire reformuler la sortie du modèle plutôt qu’à déclencher un refus, neutralisant ainsi les guardrails.

📂 Données exfiltrées (PoC)

Les données leakées lors du PoC incluaient le contenu de README.md des dépôts :

  • sasinomalabs/poc (public)
  • sasinomalabs/remote-ping (public)
  • sasinomalabs/testlocal (privé)

📌 Type d’article

Il s’agit d’une publication de recherche en vulnérabilité par Noma Labs, avec divulgation responsable à GitHub. L’objectif est de documenter techniquement la vulnérabilité GitLost et d’en fournir une preuve de concept publique.

🧠 TTPs et IOCs détectés

TTP

  • T1059 — Command and Scripting Interpreter (Execution)
  • T1530 — Data from Cloud Storage (Collection)
  • T1566 — Phishing (Prompt Injection via Issue) (Initial Access)
  • T1213 — Data from Information Repositories (Collection)
  • T1048 — Exfiltration Over Alternative Protocol (Exfiltration)

IOC

  • Fichiers : README.md

🟡 Indice de vérification factuelle : 46/100 (moyenne)

  • ⬜ noma.security — source non référencée (0pts)
  • ✅ 7674 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 1 IOC(s) (6pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 5 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ pas de CVE à vérifier (0pts)

🔗 Source originale : https://noma.security/blog/gitlost-how-we-tricked-githubs-ai-agent-into-leaking-private-repos/