Il problema individuato recentemente dai ricercatori di Manifold Security nasce da un comportamento apparentemente innocuo degli agenti AI per la programmazione. Appena viene aperto un progetto, questi strumenti analizzano automaticamente il contesto del repository per comprendere struttura, modifiche e stato dei file. Per farlo, eseguono in background comandi Git come git status e git diff, spesso senza che lo sviluppatore se ne accorga.

È proprio questa automazione a trasformarsi nel vettore d’attacco di GitSpawn, una classe di vulnerabilità che può portare all’esecuzione arbitraria di codice sulla macchina dello sviluppatore. L’aspetto più delicato è che l’attacco può avvenire senza digitare un prompt, senza confermare un’operazione e, in determinate condizioni, persino prima che l’utente abbia effettuato l’autenticazione nell’agente AI.

Il meccanismo sfrutta una caratteristica nativa di Git, precisamente l’opzione core.fsmonitor. Si tratta di una configurazione pensata per migliorare le prestazioni del controllo dei file, visto che permette di indicare un programma helper che Git può eseguire automaticamente quando aggiorna il proprio indice.

Il punto critico è dove viene recuperata questa impostazione (Git può leggerla direttamente dal file .git/config presente all’interno del repository). Un progetto appositamente manipolato può quindi contenere una configurazione che indica a Git di avviare un comando arbitrario. Quando l’agente AI esegue una delle consuete operazioni di analisi del repository, Git aggiorna l’indice e può conseguentemente attivare il comando malevolo.

L’esecuzione avviene con i privilegi dell’utente che sta utilizzando il computer e, secondo i ricercatori, al di fuori delle protezioni sandbox dell’agente. Questo aspetto modifica significativamente il modello di sicurezza dei coding agent; una protezione basata sull’approvazione preventiva delle azioni dell’AI può infatti risultare irrilevante se il codice viene eseguito direttamente da Git durante una normale operazione preliminare.

GitSpawn

Crediti: Shutterstock

C’è inoltre una distinzione importante rispetto alla distribuzione tradizionale di malware attraverso Git. Un repository compromesso non può sfruttare semplicemente un normale clone, fetch o pull, perché queste operazioni non trasferiscono il file .git/config del repository remoto in questa forma. L’attaccante deve quindi consegnare il progetto come insieme di file mantenendo intatta la directory .git.

Nella pratica, però, questo requisito non è particolarmente difficile da soddisfare in un ambiente aziendale. Un archivio ZIP, una cartella condivisa, una directory sincronizzata oppure una chiavetta USB possono trasportare un progetto già predisposto. È uno scenario plausibile soprattutto negli ambienti in cui collaborano sviluppatori interni, consulenti e fornitori esterni.

Manifold Security ha verificato la classe di problema su diversi strumenti, tra cui Claude Code, Goose, Hermes Agent, Qwen Code e Grok Build. Sono emerse inoltre varianti che coinvolgono OpenAI Codex e Cursor, per le quali sono stati successivamente distribuiti aggiornamenti correttivi. Nel caso di Claude Code, i ricercatori hanno individuato anche una vulnerabilità distinta associata al comando ultrareview, basata su un’altra impostazione Git.

La situazione non è però uniforme. Goose ha corretto la vulnerabilità catalogata come CVE-2026-72718, mentre Hermes Agent è stato associato alla CVE-2026-71963 dopo che il produttore non avrebbe risposto ai diversi tentativi di contatto. Al momento della pubblicazione della ricerca, quattro degli otto problemi analizzati risultavano ancora privi di una patch.

Per gli sviluppatori, il rischio riguarda soprattutto i repository ricevuti come file grezzi e contenenti la directory .git. Prima di consegnare un progetto a un agente AI, è quindi opportuno verificare il contenuto di .git/config, soprattutto quando la provenienza del repository non è completamente affidabile. Sul fronte dei produttori, la mitigazione passa invece dalla gestione più restrittiva delle configurazioni Git utilizzate durante le operazioni automatiche di raccolta del contesto, inclusa la disattivazione esplicita di core.fsmonitor quando non necessaria.

(Immagine in apertura: Shutterstock)