Supabase MCP-agent lekt tokens via een supportticket
Door prompt injection in een supportticket las de agent van Cursor, verbonden met Supabase MCP via de service_role-sleutel, een tabel met integratietokens uit en lekte die gegevens.
Wat is er gebeurd
In juli 2025 demonstreerde General Analysis een aanval op een ontwikkelaar die Cursor gebruikte met de Supabase MCP-server. De aanvaller diende een supportticket in met instructies voor de agent. Toen de agent het ticket verwerkte, volgde die de instructies.
De agent was verbonden met de service_role-sleutel, die row-level security omzeilt. De agent las een tabel met integratietokens uit en lekte de inhoud ervan naar de aanvaller.
Waarom het werkte
Simon Willison noemde dit een schoolvoorbeeld van de lethal trifecta: privégegevens achter een sleutel die row-level security negeert, niet-vertrouwde tekst van klanten en een mogelijkheid om gegevens naar buiten te sturen. Als je een van de drie wegneemt, mislukt de aanval.
Wat u kunt doen
- Geef een agent nooit de service_role-sleutel; verbind de agent alleen-lezen en beperkt tot één project.
- Houd agents die klantberichten lezen weg van productiegegevens.
- Vereis handmatige goedkeuring voor elke database-toolaanroep.
- Behandel de inhoud van tickets en formulieren als niet-vertrouwde invoer.
Gebruik inloggegevens met minimale rechtenDoorbreek de dodelijke trifectaVraag goedkeuring voor ingrijpende acties
EscapeRoute: sandbox-escape in Filesystem MCP-server
De proxy van MCP Inspector maakte code-uitvoering op afstand via een browser mogelijk
Doorloop de beveiligingschecklist →