2 min de lecture
Une clé de configuration Git qui traîne dans le produit depuis 2016, core.fsmonitor, suffit à faire exécuter du code arbitraire par sept agents de codage IA. Pas de prompt, pas de sandbox, et dans plusieurs cas avant même que l’agent vous demande si vous faites confiance au dossier que vous venez d’ouvrir.
Le prompt de confiance arrive après l’exécution
Un an à construire des garde-fous côté agent : sandbox de commandes, approbation d’outils, dialogue « faites-vous confiance à ce dossier ». Tout ça repose sur une hypothèse jamais vérifiée, à savoir que l’agent ne fait rien de dangereux entre le moment où il ouvre le dossier et le moment où il vous pose la question.
Manifold Security a mesuré cette fenêtre. Elle n’est pas vide.
Git propose depuis longtemps un réglage de performance nommé core.fsmonitor. Il permet à un dépôt de désigner un programme externe que git lance automatiquement à chaque rafraîchissement de l’index, donc à chaque git status ou git diff, donc à chaque collecte de contexte de votre agent de codage. Et la valeur de ce réglage peut vivre dans le .git/config du dépôt lui-même.
La frontière de confiance de votre agent commence au premier
git status, pas au dialogue d’approbation.
Bonne nouvelle au passage, et elle est importante : un git clone ne vous expose pas. Le protocole Git ne réplique jamais la configuration locale d’un dépôt distant ; fetch et pull non plus. Pour que l’attaque fonctionne, le projet doit arriver sous forme de fichiers avec son répertoire .git déjà à l’intérieur. Une archive ZIP, un dossier partagé, une clé USB, le rendu d’un test technique de recrutement. Rien de glamour, et exactement la façon dont circulent les projets dans la vraie vie.
Sept agents concernés, huit constats déposés entre juin et juillet 2026, quatre encore sans correctif au retest du 1er septembre. Techniquement, il n’y a rien à admirer là-dedans : trois lignes de configuration, aucune obfuscation. Ce qui mérite qu’on s’y arrête, c’est que sept équipes qui ne se parlent pas aient reproduit la même erreur d’architecture, à savoir lancer des commandes Git sur un répertoire non encore validé en laissant le dépôt dicter les paramètres de ces commandes.
L'analyse détaillée part d'abord aux abonnés payants de ma newsletter Substack, avant d'être publiée intégralement ici.
Au Menu de la version abonnés, vous retrouvez la suite :
- les quatre vecteurs d'attaque détaillés, les autres clés Git qui nomment un programme, la fenêtre pré-trust
- l'angle mort de l'EDR ;
- la table STRIDE complète de la frontière pré-trust et le tableau d'impact (confidentialité, intégrité, disponibilité, réputation) ;
- le scénario complet du test technique de recrutement, en sept étapes, où la victime ne commet aucune erreur ;
- l'état agent par agent : ce qui est corrigé et ce qui ne l'est pas ;
- les mitigations concrètes côté éditeur et côté poste de développeur, avec les commandes à mettre en alias ;
Articles lies
Graphalgo : le malware nord-coréen s'installe dans vos providers Terraform
Analyse de la campagne Graphalgo sur Terraform et Go : typosquatting kreuzwenker/docker, activation par hash, C2 Slack et Ethereum, STRIDE, impact ...
14/10/2026Plugin4Shell : le pinning par SHA ne vérifiait rien dans quatre agents de code
Analyse de Plugin4Shell : contournement du pinning par SHA dans quatre agents de code, mécanisme Git, statut des correctifs, STRIDE, impact et miti...
09/10/2026Skill 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/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/2026