Agent Supabase MCP wykrada tokeny przez zgłoszenie do pomocy technicznej
Prompt injection w zgłoszeniu do pomocy technicznej skłonił agenta Cursor połączonego z Supabase MCP za pomocą klucza service_role do odczytania tabeli tokenów integracji i ujawnienia jej zawartości.
Co się stało
W lipcu 2025 roku General Analysis zaprezentowało atak na dewelopera korzystającego z Cursor i serwera Supabase MCP. Atakujący przesłał zgłoszenie do pomocy technicznej zawierające instrukcje skierowane do agenta. Gdy agent przetworzył zgłoszenie, wykonał te instrukcje.
Agent był połączony za pomocą klucza service_role, który omija zabezpieczenia na poziomie wierszy. Odczytał tabelę tokenów integracji i ujawnił jej zawartość atakującemu.
Dlaczego się udało
Simon Willison nazwał ten atak podręcznikowym przykładem śmiertelnej triady: prywatne dane chronione kluczem omijającym zabezpieczenia na poziomie wierszy, niezaufany tekst od klientów oraz możliwość wyprowadzenia danych. Usunięcie dowolnego z tych trzech elementów przerywa atak.
Co zrobić
- Nigdy nie udostępniaj agentowi klucza service_role. Połącz go z bazą w trybie tylko do odczytu i ogranicz dostęp do jednego projektu.
- Nie udostępniaj agentom, które czytają teksty klientów, dostępu do danych produkcyjnych.
- Wymagaj ręcznego zatwierdzenia każdego wywołania narzędzia bazodanowego.
- Traktuj treść zgłoszeń i formularzy jako niezaufane dane wejściowe.
Stosuj zasadę minimalnych uprawnieńPrzerwij zabójczą triadęWymagaj akceptacji działań o istotnych konsekwencjach
EscapeRoute: ucieczka z sandboxa serwera Filesystem MCP
Proxy MCP Inspector umożliwiało zdalne wykonanie kodu z poziomu przeglądarki
Przejdź przez checklistę bezpieczeństwa →