Plugin4Shell, falla zero-click negli agenti AI: Codex e Claude hanno già corretto

Plugin4Shell sfrutta una falla nel controllo dei plugin per consentire l'esecuzione di codice malevolo negli agenti AI.
Plugin4Shell, falla zero-click negli agenti AI: Codex e Claude hanno già corretto

Un difetto nei principali agenti di coding basati sull’Intelligenza Artificiale può trasformare un aggiornamento automatico di un plugin in un’esecuzione di codice da remoto senza alcuna azione dell’utente.

La vulnerabilità, chiamata Plugin4Shell dai ricercatori di Air Security, riguarda il modo in cui gli agenti verificano i repository associati a plugin e skill. Il problema non risiede nel modello AI, ma nel meccanismo che dovrebbe garantire l’integrità del codice scaricato. La falla interessa Claude Code, Codex, Gemini CLI e GitHub Copilot, con differenze nelle modalità di sfruttamento e nelle risposte dei rispettivi produttori.

La criticità aumenta perché questi strumenti possono operare con gli stessi permessi dell’utente, raggiungendo repository, file, credenziali e altre risorse accessibili dalla macchina.

Il problema nascosto nel controllo dei plugin

La vulnerabilità colpisce il SHA pinning, una tecnica che associa un plugin a uno specifico commit Git considerato verificato. L’agente dovrebbe eseguire esattamente quel codice, impedendo che un aggiornamento del repository introduca modifiche inattese. Secondo Air Security, però, i client interessati controllano il riferimento richiesto senza verificare successivamente che il contenuto effettivamente presente nella directory di lavoro corrisponda all’identificativo previsto.

Nel caso di Claude Code, Codex e Copilot, un aggressore che controlla il repository può creare un branch con lo stesso nome esadecimale del commit. Se quel riferimento diventa il branch predefinito, Git può risolverlo durante il checkout al posto dell’oggetto previsto. Il risultato è un codice differente da quello sottoposto alla verifica iniziale, mentre l’agente può considerare comunque riuscita l’operazione.

Gemini CLI presenta una variante distinta. Il client recupera il commit indicato e utilizza successivamente FETCH_HEAD per il checkout; secondo i ricercatori, anche questo passaggio può essere manipolato attraverso un riferimento Git ambiguo. In entrambi gli scenari manca un controllo finale sul valore di HEAD, cioè sul commit realmente attivo dopo il checkout.

Le correzioni cambiano tra i diversi agenti

Il carattere zero-click deriva dall’aggiornamento automatico dei plugin. Claude Code e Codex, per esempio, possono aggiornare in background componenti già installati; un aggressore non deve quindi convincere la vittima a scaricare un nuovo plugin. È sufficiente intervenire sul repository di un componente già considerato affidabile. Air Security descrive due scenari: la sostituzione successiva di un plugin pubblicato dall’attaccante oppure la compromissione del repository di uno sviluppatore legittimo.

Anthropic ha corretto Claude Code nella versione 2.1.179, mentre OpenAI ha introdotto la correzione in Codex 0.146.0. Microsoft non aveva distribuito una patch per Copilot al momento della pubblicazione dell’analisi. GitHub ha spiegato che la propria piattaforma impedisce la creazione di branch o tag che imitano gli SHA dei commit, ma i ricercatori sottolineano che Copilot supporta anche repository ospitati altrove.

Google ha invece dichiarato deprecato Gemini CLI e non prevede una correzione; agli utenti viene indicato il passaggio ad Antigravity. La mitigazione completa deve comunque trovarsi nell’agente, perché è il client a risolvere localmente il riferimento Git. Un marketplace può limitare alcuni scenari, ma non può garantire da solo che il codice eseguito coincida con quello approvato.

Ti consigliamo anche

Link copiato negli appunti