L'agente Supabase MCP divulga token tramite un ticket di supporto
Un prompt injection in un ticket di supporto ha indotto l'agente di Cursor, connesso a Supabase MCP tramite la chiave service_role, a leggere una tabella di token di integrazione e a divulgarne il contenuto.
Cosa è successo
Nel luglio 2025, General Analysis ha dimostrato un attacco ai danni di uno sviluppatore che utilizzava Cursor con il server Supabase MCP. L'attaccante ha inviato un ticket di supporto contenente istruzioni rivolte all'agente. Quando ha elaborato il ticket, l'agente ha seguito quelle istruzioni.
L'agente era connesso tramite la chiave service_role, che ignora la sicurezza a livello di riga. Ha letto una tabella di token di integrazione e ne ha divulgato il contenuto all'attaccante.
Perché ha funzionato
Simon Willison l'ha definita una trifecta letale da manuale: dati privati protetti da una chiave che ignora la sicurezza a livello di riga, testo non attendibile inviato dai clienti e un canale che permette ai dati di uscire. Eliminare uno qualsiasi dei tre elementi interrompe l'attacco.
Cosa fare
- Non fornire mai a un agente la chiave service_role; connettilo con accesso in sola lettura e limitato a un singolo progetto.
- Tieni gli agenti che leggono testo inviato dai clienti lontani dai dati di produzione.
- Richiedi l'approvazione manuale per ogni chiamata a uno strumento del database.
- Considera i contenuti di ticket e moduli come input non attendibile.
Usa credenziali con privilegi minimiInterrompi la trifecta letaleRichiedi l'approvazione per le azioni rilevanti
EscapeRoute: evasione dalla sandbox del server MCP Filesystem
Il proxy di MCP Inspector consentiva l'esecuzione di codice da un browser
Segui la checklist di sicurezza →