I ricercatori di Invariant Labs ha scoperto una grave vulnerabilità nel server MCP di GitHub che può essere sfruttata per accedere ai repository privati e ottenere i dati degli utenti attraverso un agente AI. Un cybercriminale potrebbe chiedere anche l’esecuzione di codice infetto.
Descrizione del prompt injection
Il Model Context Protocol (MCP) è lo standard che permette agli sviluppatori di implementare una connessione sicura e bidirezionale tra sorgenti di dati e tool AI. I dati sono esposti tramite un server MCP, al quale accedono i client MCP, ad esempio la versione desktop di Claude usata dai ricercatori di Invariant Labs. Uno dei server MCP più popolari è quello di GitHub.
La vulnerabilità di GitHub MCP consente di effettuare un prompt injection. Il prompt è nascosto nella segnalazione di un presunto bug pubblicata nel repository pubblico di un progetto (quindi accessibile a tutti). Un cybercriminale potrebbe chiedere all’agente AI (Claude 4 Opus in questo caso) di risolvere il problema.
Per dimostrare la vulnerabilità è stata aggiunta una falsa segnalazione in un repository pubblico fittizio. Viene specificato che manca l’attribuzione all’autore nel file README
. L’attacco inizia chiedendo semplicemente a Claude di risolvere il problema.
Claude trova la segnalazione ed esegue quello che indica il testo. Accede a tutti i repository privati, legge le informazioni personali dell’autore e le aggiunge in un altro file README
pubblico. A questo punto, tutti conoscono nome dell’autore, indirizzo di residenza, lavoro, stipendio e altri dati personali.
Questa vulnerabilità non dipende dal codice del server MCP di GitHub, quindi può essere risolta solo limitando i permessi dell’agente AI e monitorando le connessioni.