Ricercatori di AIR hanno descritto Plugin4Shell, un difetto nel modo in cui quattro agenti IA di programmazione verificano che un plugin sia esattamente la versione approvata da un marketplace, ha riferito Help Net Security il 18 settembre. Gli strumenti interessati sono Claude Code, Codex, GitHub Copilot e Gemini CLI. Poiché due di essi aggiornano i plugin in background per impostazione predefinita, il resoconto afferma che un plugin che ha superato la revisione può essere sostituito con codice ostile senza che lo sviluppatore faccia nulla.
Contesto
Gli agenti IA di programmazione girano sul computer dello sviluppatore, con accesso alla shell, al file system e alle credenziali memorizzate. I plugin li estendono, e i marketplace vincolano ogni plugin a un commit specifico affinché il codice approvato da un revisore sia il codice che viene eseguito. Il difetto riguarda questo vincolo [1].
Che cosa descrive il resoconto
Secondo il resoconto, gli agenti non confermano che il codice di cui eseguono il checkout finisca nel commit vincolato. Un aggressore può creare un ramo il cui nome coincide con l’hash di un commit, così il checkout si risolve nel codice dell’aggressore mentre il vincolo sembra intatto. Il resoconto osserva che GitHub blocca tali nomi di ramo, mentre Bitbucket e i server self-hosted li consentono [1].
Il resoconto definisce il difetto zero-click perché lo stesso checkout viene rieseguito durante gli aggiornamenti automatici in background, che sono l’impostazione predefinita in Claude Code e Codex. Un aggressore può pubblicare un plugin che in seguito diventa ostile oppure prendere il controllo del repository di un plugin esistente. AIR ha riferito di aver trovato 925 skill compromesse che hanno raggiunto 134.000 agenti tramite simili prese di controllo [1].
Lo stato delle correzioni varia per fornitore. Anthropic ha corretto Claude Code nella versione 2.1.179 e OpenAI ha corretto Codex nella versione 0.146.0. Microsoft non ha rilasciato una correzione per GitHub Copilot, e Google ha dichiarato obsoleto Gemini CLI indirizzando gli utenti a un altro prodotto, Antigravity. AIR afferma di aver trovato il difetto a maggio e di averlo comunicato ai fornitori a giugno [1].
Implicazioni per chi usa un Mac
Il resoconto riguarda gli strumenti per sviluppatori su qualsiasi sistema operativo desktop e non indica macOS in particolare. Il gruppo esposto è costituito dagli sviluppatori che usano uno dei quattro agenti con plugin di marketplace di terze parti. Gli utenti Mac che non usano agenti di programmazione non sono interessati da questo difetto così come descritto [1].
Raccomandazioni
- Aggiornare Claude Code alla versione 2.1.179 o successiva e Codex alla versione 0.146.0 o successiva.
- Disattivare l’aggiornamento automatico dei plugin in background dove lo strumento lo consente e aggiornare i plugin in modo deliberato.
- Rimuovere i plugin non in uso attivo e preferire plugin ospitati su GitHub, dove secondo il resoconto il trucco dei nomi di ramo è bloccato.
- Dove si usano GitHub Copilot o Gemini CLI, considerare i plugin di terze parti un’esposizione non corretta finché il fornitore non dichiara altrimenti.
Rilevanza per FireAI
FireAI è un firewall di rete per macOS. Non esamina i plugin, non ispeziona i checkout git né impedisce a un agente di programmazione di eseguire un comando. Può però mostrare e controllare le connessioni che ne seguono: un nuovo processo che non ha ancora una regola fa comparire una richiesta nella modalità Avviso, indicato con la sua destinazione, e le regole per app possono limitare dove un dato strumento può connettersi.
Limiti
Il resoconto si basa su un unico articolo secondario. Non dice se il difetto sia stato sfruttato al di fuori della ricerca e non descrive come AIR sia arrivata alla cifra di 925 skill compromesse. Il resoconto non indica quali sistemi operativi siano stati testati.
Prova FireAI, di HisnLabs gratis per 17 giorni.