GitSpawn : le .git/config d'un dépôt reçu exécute du code hors du bac à sable des agents de code
- Ce qui s’est passé
- GitSpawn, disclosed by Manifold Security on 1 September, uses core.fsmonitor and a withheld Git key in a received repo's .git/config to make coding agents run attacker commands outside the sandbox with no prompt.
- Pourquoi c’est important
- Claude Code's ultrareview path, Hermes Agent, Qwen Code and Grok Build were unpatched at Manifold's 1 September retest; newer releases have shipped since, and no source confirms whether they close these paths.
- Que faire
- Clone repositories instead of opening received copies, set core.fsmonitor to false globally, and update Codex, goose and Claude Code.
Ne pointez jamais un agent de code vers un dépôt arrivé sous forme de fichiers : une archive, un lecteur partagé, un dossier synchronisé, une clé USB. Clonez-le plutôt depuis le dépôt distant. Selon The Hacker News, l'exploitation "exige que le dépôt arrive sous forme de fichiers avec son répertoire .git intact", et "un clonage ordinaire" ne le conserve pas. Cette seule habitude ferme tous les vecteurs ci-dessous, y compris les quatre qui n'avaient aucun correctif lors du nouveau test de Manifold le 1er septembre : le vecteur claude ultrareview de Claude Code, Hermes Agent, Qwen Code et Grok Build.
Concernés : Claude Code, OpenAI Codex, Cursor et Grok Build CLI, ainsi que goose, Hermes Agent et Qwen Code, qui ne figurent pas dans notre répertoire.
Ce qui s'est passé
Manifold Security a publié GitSpawn le 1er septembre 2026, et The Hacker News l'a relayé le 2 septembre.
Le réglage Git core.fsmonitor désigne une commande que Git exécute pour repérer les fichiers modifiés, et Git le lit dans le .git/config du dépôt lui-même. Comme l'écrit The Hacker News, "toute opération qui rafraîchit l'index, y compris git status et git diff, exécute cette commande." Les agents de code lancent ces commandes en arrière-plan pour comprendre l'espace de travail.
La fiche CVE publiée par OpenAI pour Codex, CVE-2026-19592, en décrit la conséquence : "Le programme auxiliaire s'exécute hors du bac à sable de commandes de Codex et sans invite d'approbation de l'utilisateur, ce qui permet à du code contrôlé par l'attaquant de s'exécuter avec les privilèges de l'utilisateur."
Statut, daté selon la source qui l'étaye
| Agent | Statut | Version | Date de référence |
|---|---|---|---|
| goose | Corrigé | 1.44.0 | The Hacker News, 2 sept. |
| Codex CLI | Corrigé | 0.131.0 (version actuelle 0.152.1) | The Hacker News, 2 sept. |
| Codex Desktop, macOS | Corrigé | 26.519.22136 | The Hacker News, 2 sept. |
| Codex Desktop, Windows | Corrigé | 26.519.21041 (Microsoft Store 26.519.2081.0) | The Hacker News, 2 sept. |
| Cursor | Corrigé | version non précisée | Manifold, 1er sept. |
Claude Code, vecteur core.fsmonitor | Corrigé | au plus tard en 2.1.196 | Manifold, 1er sept. |
Claude Code, vecteur claude ultrareview | Ouvert | confirmé sur 2.1.252 ; la version actuelle était la 2.1.258 | Nouveau test Manifold, 1er sept. |
| Hermes Agent | Ouvert | confirmé sur 0.21.0 | Nouveau test Manifold, 1er sept. |
| Qwen Code | Ouvert | confirmé sur 0.22.3, toujours la dernière version le 2 sept. | Nouveau test Manifold, 1er sept. |
| Grok Build | Ouvert | confirmé sur 1.0.13 | Nouveau test Manifold, 1er sept. |
Nous avons relu les deux sources le 23 septembre : l'article de Manifold comporte une seule mise à jour, datée du 1er septembre, et celui de The Hacker News n'a pas été mis à jour après le 2 septembre. De nouvelles versions sont sorties depuis (Claude Code 2.1.280 et Qwen Code 0.24.4 étaient les dernières versions au 23 septembre), et nous n'avons pas vérifié si elles ferment ces vecteurs. Considérez ces quatre statuts comme confirmés uniquement au 1er septembre.
Côté avis de sécurité : l'avis GitHub de goose porte le CVE-2026-72718, avec un score de base CVSS 4.0 de 7,0, "le seul score attribué à l'une de ces découvertes". Hermes Agent a reçu le CVE-2026-71963, attribué par VulnCheck, "une CVE Numbering Authority indépendante, et non l'éditeur", et Manifold indique que son avis GHSA privé "n'a jamais été pris en charge". The Hacker News a constaté que le registre d'avis publié par Anthropic "ne couvre aucune des deux découvertes concernant Claude Code." Aucune source ne signale d'exploitation : le catalogue Known Exploited Vulnerabilities de la CISA (version 2026.09.01) ne répertorie aucun de ces CVE.
Pourquoi c'est important
Le moment où la charge utile se déclenche supprime le filet de sécurité habituel. Sur Claude Code et Hermes Agent, elle s'exécute avant que l'invite de confiance de l'espace de travail soit acceptée, sur Qwen Code avant que l'utilisateur se soit authentifié, et sur Grok Build dès la première frappe.
Le second vecteur de Claude Code "active une autre clé de configuration Git, que Manifold n'a pas divulguée", et claude ultrareview "exécute la commande du dépôt au démarrage, avant même le début de la revue demandée." Comme il passe par une autre clé, rien dans la documentation n'indique que désactiver core.fsmonitor suffise à le fermer.
C'est aussi une régression pour Claude Code. La version 2.0.34 (5 novembre 2025) avait atténué cette même catégorie de bug en cessant d'exécuter git status avant l'approbation de confiance, mais Manifold signale que ce comportement au démarrage est réapparu dans la 2.1.193, sortie le 25 juin 2026.
Ce qui change pour vous
- Clonez depuis le dépôt distant au lieu d'ouvrir une copie reçue avec son répertoire
.gitintact. - Inspectez le
.git/configde tout répertoire reçu à la recherche decore.fsmonitor, decore.hooksPathet de filtres d'attributs, et exécutezgit config --get core.fsmonitorà l'intérieur. - Appliquez
git config --global core.fsmonitor false. - Mettez à jour Codex, goose et Claude Code au moins vers les versions corrigées ci-dessus.
- N'exécutez pas
claude ultrareviewdans un répertoire que vous n'avez pas cloné vous-même. - Considérez Hermes Agent, Qwen Code et Grok Build comme non corrigés tant que leurs mainteneurs n'ont pas confirmé de correctif ; aucun n'en avait lors du nouveau test de Manifold le 1er septembre.
Où en sont nos notes
Claude Code reste noté « Conditionnel », OpenAI Codex « Recommandé », Cursor « Conditionnel » et Grok Build CLI « Prudence ». Aucune note ne bouge sur la seule base de cette découverte. La différence tient à la réaction : Codex et goose ont livré des correctifs accompagnés de CVE, le CVE d'Hermes Agent vient d'un tiers et, au 2 septembre, le registre d'avis publié par Anthropic ne couvrait aucun des deux vecteurs de Claude Code.
FAQ
Régler core.fsmonitor sur false me protège-t-il partout ?
Non. Cela couvre les vecteurs core.fsmonitor, mais le vecteur claude ultrareview de Claude Code utilise une autre clé, que Manifold n'a pas divulguée.
Un git clone normal est-il sûr ?
Selon The Hacker News, un clonage ordinaire ne conserve pas le .git/config de l'attaquant : l'attaque exige donc un dépôt arrivé sous forme de fichiers.
Cette faille est-elle exploitée ? Aucune source ne signale d'exploitation, et aucun de ces CVE ne figurait dans le catalogue Known Exploited Vulnerabilities de la CISA dans sa version 2026.09.01.
Que faire
- 1 Clone repositories from their remote instead of opening a copy that arrived as an archive, shared drive, sync folder or USB stick.
- 2 Before opening any received directory with an agent, inspect .git/config for core.fsmonitor, core.hooksPath and attribute filters, and run git config --get core.fsmonitor inside it.
- 3 Audit your global Git config, then set git config --global core.fsmonitor false.
- 4 Update to Codex CLI 0.131.0, Codex Desktop 26.519.22136 (macOS) or 26.519.21041 (Windows), goose 1.44.0 and Claude Code 2.1.196 or later.
- 5 Do not run claude ultrareview in a directory you did not clone yourself; that path uses a withheld Git key that disabling fsmonitor does not cover.
- 6 Treat Hermes Agent, Qwen Code and Grok Build as unpatched until their maintainers confirm a fix; none had one at Manifold's 1 September retest.
Outils et modèles concernés
Ne ratez plus jamais une mise à jour
Le récap hebdomadaire — uniquement les changements de verdict et les actions urgentes. Sans remplissage.