guardfall shell injection agenti ai

L’AI che fa coding può cancellarti il PC: la minaccia “GuardFall” fa tremare gli sviluppatori (ma c’è un’eccezione)

🛡️ Executive Summary

  • GuardFall sfrutta il comportamento delle shell per aggirare i controlli di sicurezza implementati da numerosi agenti AI coding open source.
  • Dieci degli undici strumenti analizzati risultano vulnerabili a comandi distruttivi che possono cancellare dati o sottrarre credenziali con i privilegi dell’utente.
  • La ricerca indica come mitigazione efficace un’analisi sintattica completa dei comandi prima dell’esecuzione, approccio implementato dal progetto Continue.

La crescente diffusione degli agenti AI per lo sviluppo software sta trasformando il modo in cui programmatori e aziende automatizzano compilazioni, test, debugging e gestione dei repository. Tuttavia questa automazione introduce anche nuovi vettori di attacco. I ricercatori di Adversa AI hanno identificato una tecnica denominata GuardFall, capace di aggirare i meccanismi di protezione implementati dalla maggior parte degli agenti AI open source che eseguono comandi di sistema. Il problema non nasce da una singola vulnerabilità, ma da una debolezza progettuale comune: i controlli di sicurezza analizzano il comando come semplice testo, mentre la shell interpreta quello stesso comando attraverso una serie di trasformazioni prima della sua esecuzione. Questa differenza permette a un aggressore di costruire istruzioni apparentemente innocue che diventano pericolose solo nel momento in cui vengono elaborate da bash, zsh o PowerShell. La ricerca mostra che dieci degli undici agenti più diffusi risultano vulnerabili, mentre soltanto Continue implementa una protezione realmente efficace.

GuardFall nasce da una differenza tra filtro e shell

L’origine della ricerca risiede nell’analisi del progetto Hermes sviluppato da NousResearch, dove i ricercatori hanno individuato il primo caso documentato del problema. Successivamente l’indagine è stata estesa agli agenti AI open source più popolari presenti su GitHub, selezionati in base al numero di stelle e all’attività recente dello sviluppo. Nel complesso i progetti esaminati superavano 548.000 stelle, confermando quanto queste piattaforme siano ormai ampiamente adottate sia da sviluppatori indipendenti sia da aziende.

image 37
L'AI che fa coding può cancellarti il PC: la minaccia "GuardFall" fa tremare gli sviluppatori (ma c'è un'eccezione) 7

Il cuore della vulnerabilità è rappresentato dalla diversa interpretazione del comando. Il guardiano di sicurezza effettua controlli sul testo originale, cercando parole chiave pericolose o confrontandole con blacklist predefinite. La shell, invece, prima dell’esecuzione applica espansioni, sostituzioni, rimozione delle virgolette e numerose altre trasformazioni. Di conseguenza il filtro valuta una stringa, mentre il sistema operativo ne esegue un’altra completamente diversa.

Le tecniche di bypass sfruttano funzionalità storiche delle shell

Annuncio

La ricerca dimostra che non servono exploit sofisticati per compromettere questi agenti. È sufficiente sfruttare meccanismi presenti nelle shell Unix da decenni. Una delle tecniche più semplici consiste nell’inserire virgolette vuote all’interno del nome del comando: una sequenza come r”m viene interpretata dal filtro come innocua, ma bash elimina automaticamente le virgolette producendo il comando rm.

image 38
La protezione regex-over-raw-string di Opencode si attiva rm -rfma rimane silenziosa su un semplice cp, scrivendo il file senza alcun prompt — un bypass di Classe E che, in un attacco reale, copia ~/.aws/credentialso ~/.ssh/id_rsanon viene rilevato.

Un secondo metodo utilizza la variabile $IFS, responsabile della separazione dei campi. Attraverso questa espansione è possibile ricostruire spazi e argomenti senza che il filtro li riconosca come tali. Un’altra variante sfrutta la command substitution, costruendo dinamicamente il nome del comando pericoloso durante l’esecuzione. Gli autori mostrano inoltre bypass basati sulla decodifica Base64 tramite pipeline e sull’utilizzo di strumenti perfettamente legittimi come find, tar, dd o sed, sfruttandone opzioni avanzate per ottenere effetti distruttivi senza ricorrere a utility comunemente bloccate come rm. Nessuna di queste tecniche rappresenta una novità nel mondo Unix; ciò che cambia è la loro capacità di eludere i controlli implementati dagli agenti AI.

Dieci agenti AI risultano vulnerabili

L’analisi di Adversa AI individua quattro differenti categorie di errore progettuale. Alcuni agenti applicano semplici espressioni regolari direttamente sul testo ricevuto e risultano vulnerabili praticamente a tutte le tecniche di bypass. Altri effettuano una tokenizzazione preliminare ma continuano a confrontare il comando originale, lasciando passare sostituzioni ed espansioni. Una terza categoria non implementa alcun controllo statico e demanda completamente la sicurezza alla conferma dell’utente, un approccio che perde efficacia quando vengono abilitate modalità di esecuzione automatica nelle pipeline CI/CD. Infine esistono strumenti che si affidano esclusivamente a un ambiente sandbox, ma permettono anche modalità locali che eseguono direttamente sull’host senza alcuna protezione aggiuntiva.

image 39
La sandbox fatta bene: SWE-agent viene eseguito rm -rf /all’interno di un contenitore usa e getta e il file di marcatura dell’host rimane intatto byte per byte prima e dopo: la classe di bypass è strutturalmente inapplicabile finché non viene abilitata l’opzione di disattivazione locale.

Tra gli strumenti risultati vulnerabili figurano OpenCode, Goose, Cline, Roo-Code, Aider, Plandex, Open Interpreter, OpenHands, SWE-agent e Hermes. I ricercatori hanno verificato concretamente gli attacchi sul binario di produzione di Plandex e hanno osservato lo stesso comportamento anche negli altri progetti analizzati.

Un repository compromesso può trasformarsi in vettore di attacco

Lo scenario descritto dagli autori non richiede la compromissione diretta dell’agente AI. L’attaccante deve semplicemente riuscire a inserire contenuti malevoli in una sorgente considerata attendibile dal modello. Questo può avvenire attraverso repository Git, pacchetti distribuiti tramite npm o PyPI, configurazioni di progetto, README, file di build oppure server MCP compromessi. L’agente interpreta queste istruzioni come parte del normale flusso operativo. Durante attività apparentemente innocue, come l’esecuzione di make test, la compilazione di un progetto o la pulizia dei file temporanei, può generare un comando che supera il filtro ma viene trasformato dalla shell in un’azione distruttiva. Tra gli scenari dimostrati compare un Makefile modificato per eliminare le credenziali AWS presenti nella directory personale dell’utente. Lo stesso principio può essere utilizzato per sottrarre chiavi SSH, token Git, certificati, segreti cloud o altri file accessibili con i privilegi dell’account che esegue l’agente.

Continue è l’unico progetto che blocca tutti i test

Tra gli undici agenti valutati, soltanto Continue supera tutte le prove predisposte dai ricercatori. La differenza non deriva da una blacklist più ampia ma da un’architettura completamente diversa. Il sistema analizza il comando attraverso un processo composto da cinque fasi. Innanzitutto effettua una vera tokenizzazione compatibile con il comportamento della shell. Successivamente identifica espansioni di variabili come $IFS e ${VAR}, analizza ricorsivamente le sostituzioni di comando, verifica le destinazioni delle pipeline impedendo l’invocazione indiretta di altre shell e infine applica una lista di blocco ai comandi realmente pericolosi considerando anche le forme alternative degli argomenti.

image 40
Il valutatore a cinque fasi di Continue, applicato in ordine al comando grezzo — tokenizzazione, rilevamento dell’espansione, ricorsione nelle sostituzioni, controllo delle destinazioni della pipe, corrispondenza con l’elenco disabilitato — ogni fase chiude la classe che, saltandola, verrebbe riaperta.

Durante i test, nessuna delle 21 tecniche di bypass predisposte dagli autori è riuscita a superare il sistema di protezione e tutti i dodici scenari distruttivi sono stati bloccati. Secondo Adversa AI, questo modello può essere reimplementato da altri progetti con un lavoro relativamente contenuto, dell’ordine di pochi giorni per uno sviluppatore esperto.

Impatti sulla supply chain del software

La ricerca evidenzia un rischio particolarmente elevato per le organizzazioni che stanno integrando agenti AI nei processi di sviluppo automatizzati. Quando questi strumenti vengono eseguiti con privilegi elevati all’interno di pipeline CI/CD o workstation di sviluppo, un singolo comando malevolo può compromettere l’intero ambiente operativo. Il problema assume inoltre una dimensione di supply chain, poiché l’attaccante può distribuire istruzioni dannose all’interno di componenti software apparentemente affidabili. Repository pubblici, librerie open source e server MCP diventano così punti di ingresso per manipolare indirettamente il comportamento dell’agente senza compromettere direttamente il software stesso. Gli autori sottolineano come GuardFall si inserisca in una serie di vulnerabilità analoghe emerse nel corso del 2026 che hanno interessato strumenti come Claude Code, Cursor, Gemini CLI e Copilot CLI, confermando un problema sistemico nella progettazione degli agenti AI che interagiscono con la shell.

Le mitigazioni richiedono un cambio di paradigma

Secondo Adversa AI, continuare ad ampliare blacklist e pattern di riconoscimento non rappresenta una soluzione efficace. Il numero di possibili trasformazioni offerte dalle shell rende praticamente impossibile coprire tutte le varianti attraverso semplici espressioni regolari. La mitigazione più robusta consiste nell’analizzare il comando dopo averlo trasformato nello stesso modo in cui lo interpreterebbe realmente la shell, applicando successivamente le verifiche di sicurezza sulla forma canonica ottenuta. Parallelamente è consigliabile mantenere l’approvazione esplicita dell’utente per le operazioni più sensibili, evitare l’auto-esecuzione nelle pipeline quando non strettamente necessaria e verificare che eventuali modalità locali non bypassino le protezioni presenti nei container sandbox. GuardFall dimostra come l’evoluzione degli agenti AI coding richieda un ripensamento delle strategie di sicurezza. Più che una singola vulnerabilità, rappresenta una classe di errori architetturali che interessa buona parte dell’ecosistema open source e che dovrà essere affrontata con approcci progettuali più vicini al reale funzionamento delle shell piuttosto che al semplice filtraggio del testo.

Iscriviti alla Newsletter

Non perdere le analisi settimanali: Entra nella Matrice Digitale.

Matrice Digitale partecipa al Programma Affiliazione Amazon EU. In qualità di Affiliato Amazon, ricevo un guadagno dagli acquisti idonei. Questo non influenza i prezzi per te.

Torna in alto