Médio

CORS da API não libera credenciais para qualquer origem

Envia um preflight (OPTIONS) para /rest/v1/ com a origem https://evil.example e falha se a resposta permitir credenciais e aceitar qualquer origem (*) ou repetir a origem recebida.

Por que importa

Se a API repete a origem de quem pede junto com Access-Control-Allow-Credentials: true, qualquer site pode fazer requisições com os cookies do usuário e ler as respostas.

Como corrigir

No Supabase hospedado, o CORS é definido pela plataforma. Se houver um proxy na frente da API, não repita a origem recebida: responda só para uma lista fixa das origens do seu app.

Como conferir a correção

SB-008
curl -s -D - -o /dev/null -X OPTIONS "$SUPABASE_URL/rest/v1/" \
  -H 'Origin: https://evil.example' \
  -H 'Access-Control-Request-Method: GET' \
  -H "apikey: $ANON_KEY"

Referências