Git trasformato in una trappola: sette agenti AI possono eseguire codice dai repository
Vulnerabilità

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.

Leggi anche

Fonti

Questo articolo è una rielaborazione originale basata sulle fonti seguenti.

CVE trattate in questo articolo

Argomenti correlatiagenti AI vulnerabilitàGit core.fsmonitoresecuzione codice arbitrarioClaude CodeCodex CVECursor sicurezzapatch aggiornamenti
Torna alla home