Un agent Supabase MCP divulgue des tokens via un ticket d'assistance
Une injection de prompt dans un ticket d'assistance a poussé l'agent de Cursor, connecté à Supabase MCP avec la clé service_role, à lire une table de tokens d'intégration et à en divulguer le contenu.
Ce qui s’est passé
En juillet 2025, General Analysis a démontré une attaque visant un développeur qui utilisait Cursor avec le serveur Supabase MCP. L'attaquant a envoyé un ticket d'assistance contenant des instructions destinées à l'agent. Lorsque celui-ci a traité le ticket, il a suivi ces instructions.
L'agent était connecté avec la clé service_role, qui contourne la sécurité au niveau des lignes. Il a lu une table de tokens d'intégration et en a divulgué le contenu à l'attaquant.
Pourquoi l’attaque a fonctionné
Simon Willison a qualifié ce cas d'exemple classique de trifecta létale : des données privées protégées par une clé qui ignore la sécurité au niveau des lignes, du texte non fiable fourni par des clients et un moyen de faire sortir les données. Supprimer l'un de ces trois éléments suffit à bloquer l'attaque.
Mesures à prendre
- Ne donnez jamais à un agent la clé service_role ; connectez-le en lecture seule et limitez son accès à un seul projet.
- Tenez les agents qui lisent les messages des clients à l'écart des données de production.
- Exigez une approbation manuelle pour chaque appel à un outil de base de données.
- Considérez le contenu des tickets et des formulaires comme une entrée non fiable.
Utiliser des identifiants à privilèges minimauxBrisez la triade fataleExiger une approbation pour les actions importantes
EscapeRoute : évasion du sandbox du serveur MCP Filesystem
Le proxy MCP Inspector permettait l'exécution de code à distance depuis un navigateur
Suivre la checklist de sécurité →