1 min de lecture
Un dépôt GitHub sans une seule ligne de code malveillant. Un agent de codage qui suit sagement un message d’erreur bien formulé. Et pourtant : un shell inversé, les credentials du développeur exfiltrées, une persistance installée. La charge utile n’apparaît jamais dans le dépôt, jamais dans la revue de code, jamais dans le contexte que l’agent traite avant de l’exécuter.
Source : 0DIN Blog (Andre Hall, Miller Engelbrecht), “Clone This Repo and I Own Your Machine”, 0din.ai/blog, relayé par tl;dr sec #336.
Trois composants anodins, un système complet
Le dépôt a une documentation d’installation parfaitement banale. Le package lève un RuntimeError dont le message vous recommande poliment la commande à lancer pour réparer. Et cette commande d’initialisation va chercher sa vraie instruction dans un enregistrement DNS TXT contrôlé par l’attaquant, qu’elle décode en base64 et passe directement à bash.
Un secret bien caché finit par se trouver. Un secret qui n’est nulle part dans ce que vous inspectez survit à un audit parfait.
Le shell inversé n’a rien d’original ; on en a vu des centaines. Ce qui l’est, c’est d’avoir compris qu’un agent de codage face à une erreur cherche à la corriger, pas à s’arrêter et à poser la question. Même mécanique que dans AWS Kiro : l’agent accorde sa confiance à un contenu que personne n’a validé.
Je détaille dans la version complète pourquoi cette technique rend la revue de code et le SAST structurellement aveugles, le tableau d’impact complet, et mes recommandations de durcissement pour les environnements de développement assistés par agent : sandboxing des scripts d’installation, traitement de la résolution DNS comme un canal de données, journalisation des requêtes DNS sortantes des postes de développement.
Articles lies
Skill poisoning : quand le skill que vous installez est le malware
Dossier sur le skill poisoning : mécanismes, avis CVERC et CNCERT, campagnes ClawHavoc et AgentBaiting, chiffres à ne pas confondre, STRIDE, impact...
04/10/2026MCP Python SDK : le SDK officiel rejoue un vieux piège OAuth, le mix-up attack
Analyse de la faille OAuth mix-up découverte par Cycode dans le SDK Python officiel du Model Context Protocol (MCP) : mécanisme, versions affectées...
30/09/2026SalesBleed : un formulaire public suffit à faire fuiter votre CRM via Agentforce
Analyse de SalesBleed, une chaîne de vulnérabilités découverte par Zenity Labs dans Salesforce Agentforce : injection de prompt indirecte via un fo...
28/09/2026Orkes Conductor : une RCE sans authentification, déjà exploitée, derrière un sandbox laissé grand ouvert
Analyse de CVE-2026-58138, une RCE pré-authentification dans Orkes Conductor (3.21.21 à 3.30.1) causée par des évaluateurs GraalVM sans sandbox, ex...
23/09/2026PaperCut : 395 organisations tombent en 11 jours face à un essaim d'agents IA
Analyse de la campagne PaperCut pilotée par un essaim d'agents IA (Codex, DeepSeek) : CVE-2026-81578/82078, 440 instances compromises dans 48 pays,...
22/09/2026