Immagine illustrativa generata con AI
Git trasformato in una trappola: sette agenti AI possono eseguire codice dai repository
7 agenti AI vulnerabili a Git core.fsmonitor: repository malevoli eseguono codice arbitrario senza conferme. Versioni colpite, CVE e patch disponibili.
Testo generato da intelligenza artificiale, pubblicato senza revisione umana. Trasparenza IA
Otto vulnerabilità negli strumenti di sviluppo assistito
Il 2 settembre 2026 è emersa una classe di vulnerabilità che coinvolge sette agenti AI per lo sviluppo software da riga di comando. In determinate condizioni, un repository preparato da un attaccante può indurre questi strumenti a eseguire comandi arbitrari sull’host.
Sono stati individuati otto difetti complessivi in goose, Codex, Claude Code, Hermes Agent, Qwen Code, Grok Build e Cursor. Il problema non dipende da prompt malevoli, jailbreak del modello o autorizzazioni concesse agli strumenti AI. L’esecuzione avviene invece quando l’agente invoca automaticamente Git per ricostruire il contesto del progetto.
Il comando dell’attaccante viene eseguito con i privilegi dell’utente locale, fuori dal sandbox dell’agente e senza una richiesta di conferma. Può quindi leggere, modificare o cancellare file, utilizzare le credenziali dell’account e accedere ai segreti presenti nelle variabili d’ambiente, comprese eventuali chiavi API.
In alcuni prodotti il payload parte prima che l’utente dichiari attendibile il workspace. In altri viene eseguito prima dell’autenticazione, al primo tasto premuto oppure prima ancora che l’agente contatti il modello linguistico.
Non risultano attacchi osservati che abbiano sfruttato queste vulnerabilità. Nessuno dei CVE esaminati compare inoltre nel catalogo Known Exploited Vulnerabilities della CISA, quindi non esiste una scadenza federale di aggiornamento associata.
Il comando nascosto dentro .git/config
Il principale vettore di attacco è core.fsmonitor, un’opzione legittima di Git pensata per velocizzare il rilevamento dei file modificati. Il suo valore può indicare un comando esterno che Git esegue durante alcune operazioni sull’indice.
Un repository ostile può contenere una configurazione simile:
[core]
fsmonitor = <comando>
La riga si trova nel file locale .git/config. Quando un agente esegue in background operazioni come git status o git diff, Git legge la configurazione e può avviare il comando specificato dall’attaccante.
Il modello AI non partecipa alla catena. Il difetto nasce dall’interazione tra una funzione molto flessibile di Git e l’automazione introdotta dagli assistenti di programmazione.
Il repository deve però raggiungere la vittima con la directory .git intatta. I possibili canali comprendono archivi compressi, cartelle sincronizzate, unità condivise, chiavette USB, volumi montati, repository annidati e checkout prodotti da pipeline CI.
Un normale git clone non conserva la configurazione locale malevola nel modo richiesto da questo attacco. Il rischio maggiore riguarda quindi progetti ricevuti come directory complete o estratti da archivi, non i repository clonati attraverso il consueto flusso Git.
Le barriere di fiducia dell’agente arrivano troppo tardi. Su Claude Code e Hermes Agent il comando può precedere l’accettazione del workspace; su Qwen Code può partire prima dell’autenticazione. Grok Build può attivarlo alla prima pressione di un tasto, mentre goose può eseguirlo prima di contattare il modello.
Versioni vulnerabili e aggiornamenti disponibili
Lo stato delle correzioni varia sensibilmente tra i sette prodotti.
| Prodotto | Versioni coinvolte o verificate | Correzione e stato |
|---|---|---|
| goose | Tutte le versioni precedenti alla 1.44.0; test su 1.41.0 |
Corretta nella 1.44.0 |
| Codex CLI | Dalla 0.102.0 alla 0.130.0 |
Corretta nella 0.131.0 |
| Codex Desktop macOS | Dalla 260202.0859 alla 26.513.31313 |
Corretta nella 26.519.22136 |
| Codex Desktop Windows | Dalla 26.304.38 alla 26.513.40821 |
Corretta nella 26.519.21041 |
| Codex Microsoft Store | Dalla 26.304.38.0 alla 26.513.4821.0 |
Corretta nella 26.519.2081.0 |
| Claude Code, percorso FSMonitor | 2.1.193 verificata come vulnerabile |
Corretta nella 2.1.196 |
Claude Code, ultrareview |
Confermata sulla 2.1.252 |
Stato delle release successive non noto |
| Hermes Agent | 0.18.2 e 0.21.0 |
Correzione non disponibile nei test riportati |
| Qwen Code | 0.19.6 e 0.22.3 |
Correzione non disponibile |
| Grok Build | 0.2.93 e 1.0.13 |
Correzione non disponibile |
| Cursor CLI | Versioni esatte non rese note | Correzione disponibile, versione non indicata |
In goose, identificato come CVE-2026-72718, il comando goose review usa il binario Git installato nel sistema. Le funzioni incaricate di raccogliere il contesto lanciano git diff --name-only HEAD e git diff HEAD senza neutralizzare core.fsmonitor.
La vulnerabilità è classificata High, con CVSS v4 pari a 7,0/10 e categoria CWE-94. La relativa advisory GHSA-r5pp-p5r8-466r, pubblicata il 24 luglio, attribuisce la scoperta a Francisco Rosales di Manifold Security.
OpenAI ha pubblicato tre CVE per Codex, provenienti da tre gruppi di ricerca indipendenti. Per CVE-2026-19592, il processo helper gira fuori dal sandbox e senza approvazione. Il difetto ha un punteggio CVSS 3.1 di 7,3. Sebbene la versione corrente di Codex CLI verificata fosse la 0.152.1, le installazioni bloccate sotto la 0.131.0 rimangono esposte.
Claude Code ha due percorsi distinti
Claude Code richiede una valutazione separata perché sono stati individuati due meccanismi di attacco.
Il primo sfrutta core.fsmonitor: era riproducibile nella versione 2.1.193 ed è stato corretto nella 2.1.196. La segnalazione è stata presentata il 26 giugno e la patch è arrivata il 29 giugno, ma il caso è stato chiuso come duplicato di un report precedente ricevuto nello stesso giorno.
Il secondo percorso passa da claude ultrareview e utilizza una diversa chiave di configurazione Git, che non è stata divulgata. L’attacco risultava funzionante sulla 2.1.252; il confronto più recente è stato effettuato con la 2.1.258, senza stabilire se una release successiva abbia eliminato il problema.
Anthropic aveva già affrontato comportamenti pre-trust. La versione 2.0.34 aveva modificato l’avvio per impedire un git status prima dell’approvazione del workspace, ma un comportamento correlato è ricomparso nella 2.1.193.
Anche CVE-2026-55607, valutata 8,8 CVSS, riguarda l’esecuzione di Git FSMonitor durante operazioni sui worktree. Non è stata pubblicata un’advisory dedicata che copra entrambi i nuovi percorsi descritti per Claude Code.
Come controllare un repository prima di aprirlo
La prima misura consiste nel trattare come non attendibili le directory di progetto ricevute con .git già presente. Prima di avviare un agente AI, è possibile verificare il valore locale di FSMonitor:
git config --get core.fsmonitor
La configurazione globale può invece essere controllata con:
git config --global --list | grep fsmonitor
Occorre anche ispezionare manualmente .git/config, cercando almeno:
core.fsmonitor;core.hooksPath;attr.tree;- filtri
clean; - filtri
process.
La presenza di queste opzioni non dimostra automaticamente un attacco. È però necessario analizzarne il valore, soprattutto se richiama script, interpreti, binari o percorsi esterni al repository.
Se FSMonitor non serve, può essere disabilitato globalmente:
git config --global core.fsmonitor false
Gli sviluppatori degli agenti dovrebbero invece neutralizzare esplicitamente le configurazioni controllabili dal repository durante ogni invocazione Git automatica. Per FSMonitor, una chiamata difensiva può assumere questa forma:
git -c core.fsmonitor=false status
Limitarsi a questa opzione, tuttavia, non basta. Anche hook, attributi e filtri Git possono modificare il comportamento dei processi automatici e devono rientrare nel modello di sicurezza.
Patch immediate, ma alcuni prodotti restano esposti
Gli utenti di goose devono installare almeno la 1.44.0. Codex CLI va portato almeno alla 0.131.0, mentre le applicazioni desktop devono raggiungere le build corrette specifiche per macOS, Windows o Microsoft Store.
Per Claude Code la 2.1.196 chiude il percorso core.fsmonitor, ma non consente di considerare risolto anche il vettore ultrareview. Hermes Agent, Qwen Code e Grok Build risultavano ancora vulnerabili nelle versioni più recenti sottoposte a test. Per Cursor è disponibile una correzione, ma non sono note le build interessate.
La tecnica non è nuova: problemi analoghi erano stati corretti in Visual Studio Code prima della 1.63.1 con CVE-2021-43891, e negli IDE JetBrains prima della 2021.3.1 con CVE-2022-24346. Entrambi hanno un punteggio CVSS di 7,8.
Negli ultimi 90 giorni la CISA ha inserito nel KEV anche vulnerabilità riferite ad Anthropic, Microsoft e JetBrains: CVE-2019-1068 il 26 agosto 2026; CVE-2026-33824 e CVE-2026-55040 il 18 agosto 2026; CVE-2026-68820 l’11 agosto 2026; CVE-2026-63077 il 5 agosto 2026; CVE-2026-50522 il 22 luglio 2026. Le falle Git degli agenti AI qui descritte, invece, non risultano nel catalogo.
L’assenza dal KEV e di compromissioni documentate non elimina il rischio tecnico. Basta aprire la directory sbagliata con un agente vulnerabile: il codice può partire prima che qualsiasi controllo AI o dialogo di fiducia abbia la possibilità di intervenire.
Fonti
Questo articolo è una rielaborazione originale basata sulle fonti seguenti.
CVE trattate in questo articolo
- CVE-2026-50522CRITICAL9.8Deserialization of untrusted data in Microsoft Office SharePoint allows an unauthorized attacker to execute code over a network.
- CVE-2026-63077CRITICAL9.8In JetBrains TeamCity before 2026.1.3, 2025.11.7 unauthenticated remote code execution was possible via the agent polling protocol
- CVE-2026-33824CRITICAL9.8Double free in Windows IKE Extension allows an unauthorized attacker to execute code over a network.
- CVE-2026-55040CRITICAL9.1Weak authentication in Microsoft Office SharePoint allows an unauthorized attacker to bypass a security feature over a network.
- CVE-2019-1068HIGH8.8A remote code execution vulnerability exists in Microsoft SQL Server when it incorrectly handles processing of internal functions, aka 'Microsoft SQL Server Remote Code Execution Vulnerability'.
- CVE-2026-55607HIGH8.8Claude Code is an agentic coding tool. From 2.1.38 until 2.1.163, Claude Code's worktree handling allowed creation of worktrees named ".git" and navigation to worktrees outside the sandbox context, enabling git directory confusion attacks. By exploiting symlink manipulation and git fsmonitor execut
- CVE-2021-43891HIGH7.8Visual Studio Code Remote Code Execution Vulnerability
- CVE-2022-24346HIGH7.8In JetBrains IntelliJ IDEA before 2021.3.1, local code execution via RLO (Right-to-Left Override) characters was possible.
- CVE-2026-19592HIGH7.3OpenAI Codex CLI for Windows, macOS, and Linux and Codex Desktop for Windows and macOS automatically collected Git repository metadata without disabling the repository-local core.fsmonitor setting. If a user opens or uses an attacker-prepared repository whose preserved .git/config sets core.fsmonito
- CVE-2026-68820HIGH7.0Use after free in Windows Ancillary Function Driver for WinSock allows an authorized attacker to elevate privileges locally.
- CVE-2026-72718goose is general-purpose AI agent that runs on your machine. Prior to 1.44.0, the `goose review` command runs the system `git` executable to gather the diff for review without stripping attacker-controlled Git configuration. A malicious repository whose `.git/config` sets [`core] fsmonitor = <comman
