Agente MCP do Supabase vaza tokens por meio de um chamado de suporte
Uma injeção de prompt em um chamado de suporte fez o agente do Cursor, conectado ao MCP do Supabase com a chave service_role, ler uma tabela de tokens de integração e vazar seu conteúdo.
O que aconteceu
Em julho de 2025, a General Analysis demonstrou um ataque contra um desenvolvedor que usava o Cursor com o servidor MCP do Supabase. O atacante enviou um chamado de suporte com instruções direcionadas ao agente. Ao processar o chamado, o agente seguiu essas instruções.
O agente estava conectado com a chave service_role, que ignora a segurança em nível de linha. Ele leu uma tabela de tokens de integração e vazou o conteúdo para o atacante.
Por que funcionou
Simon Willison chamou o caso de exemplo clássico da tríade letal: dados privados protegidos por uma chave que ignora a segurança em nível de linha, texto não confiável enviado por clientes e uma forma de os dados saírem. Eliminar qualquer um dos três elementos impede o ataque.
O que fazer
- Nunca forneça a chave service_role a um agente; conecte-o com acesso somente leitura, limitado a um único projeto.
- Mantenha agentes que leem textos de clientes longe dos dados de produção.
- Exija aprovação manual para cada chamada de ferramenta do banco de dados.
- Trate o conteúdo de chamados e formulários como entrada não confiável.
Use credenciais com privilégio mínimoDesfaça a tríade letalExija aprovação para ações com consequências
EscapeRoute: fuga do sandbox no servidor MCP Filesystem
Proxy do MCP Inspector permitia execução remota de código pelo navegador
Siga o checklist de segurança →