Análise semanal · semana de 22 a 29 de setembro de 2026

16.326 bancos de dados abertos, e a correção são duas linhas de SQL

A UpGuard varreu cerca de 300 mil domínios que usam Supabase e encontrou 16.326 bases respondendo à internet com tabelas legíveis. Mais da metade guarda dado pessoal. Esta análise explica por que o erro se repete, por que ele se concentra em aplicação escrita com apoio de agente, e o que um comitê de risco pode exigir sem virar administrador de banco.

UpGuard, 25/09/2026 16.326 bases ~300 mil domínios varridos Row Level Security Leitura LGPD
Painel editorial da LATAMSEC com os números da pesquisa da UpGuard sobre bases Supabase expostas, exemplos de dados legíveis e roteiro de noventa dias
A chave anônima do Supabase é pública por projeto. Ela nunca foi o controle de acesso, e é tratada como se fosse.

Resumo executivo: Greg Pollock, diretor de pesquisa da UpGuard, publicou em 25 de setembro um levantamento que identificou 16.326 bancos Supabase com tabelas legíveis por qualquer visitante. A metodologia partiu de aproximadamente 300 mil domínios com indício de uso da plataforma, identificados por impressão digital técnica em arquivos JavaScript públicos. Mais da metade das bases expostas apresentava indício de dado pessoal; um subconjunto menor trazia senha e token de autenticação; um número residual sugeria dado de cartão. A causa raiz é a mesma em todos os casos: ausência ou ineficácia de política de segurança por linha, combinada com uso da chave pública do projeto como se fosse credencial de acesso.

Vale começar desfazendo uma leitura que apareceu bastante nos últimos dias. Isso não é uma vulnerabilidade do Supabase.

A plataforma expõe uma API REST sobre o banco Postgres e entrega, junto com o projeto, uma chave anônima que fica embutida no JavaScript do site. Ela é pública por desenho. Qualquer pessoa que abra o código-fonte da página encontra essa chave, e isso está documentado. O que decide quem lê o quê é a política de segurança por linha, o Row Level Security do Postgres, que precisa ser escrita tabela por tabela.

Quando a política não existe, a chave pública devolve a tabela inteira. O banco está fazendo exatamente o que foi mandado fazer.

Por que o erro se concentra onde o agente escreveu o código

Esse é o ponto da pesquisa que merece o tempo de quem decide.

Desde março de 2025, depois da CVE-2025-48757, o Supabase passou a habilitar a proteção por padrão nas tabelas criadas pelo editor visual. Quem clica para criar uma tabela recebe a proteção ligada.

Tabela criada por API, no entanto, não recebe a proteção por padrão. E criar tabela por API é exatamente como um agente de codificação interage com a plataforma. O caminho que ficou seguro é o do humano clicando; o caminho que ficou aberto é o da automação.

A UpGuard registra que mais de 60% das bases Supabase criadas recentemente envolvem desenvolvimento assistido por IA, e observa que a plataforma se tornou peça central em aplicações montadas com construtores conversacionais. Os pesquisadores foram honestos sobre o limite dessa correlação: não é possível confirmar que todas as bases expostas foram geradas dessa forma. Mas a combinação entre um padrão inseguro no caminho programático e um volume crescente de código escrito por agente explica bem a escala encontrada.

Há uma lição mais geral aqui, e ela não é sobre Supabase. Quando uma plataforma corrige um padrão inseguro apenas na interface visual, ela protege quem já sabia o que estava fazendo e deixa descoberto quem delegou a decisão. O agente não escreve a política que ninguém pediu.

O que estava legível

A UpGuard consultou o esquema das tabelas em vez de ler linha a linha, dada a escala. Os exemplos nomeados no relatório dão a dimensão do que ficou aberto.

AplicaçãoO que estava legível
Serviço de manobrista no nordeste dos Estados UnidosMais de 100 mil clientes com telefone, cerca de 43 mil com nome e e-mail e cerca de 78 mil placas de veículo, além do histórico de visitas.
Serviço de mensagens com senha de uso único nas FilipinasMais de 2 mil cadastros e mais de 100 mil mensagens SMS contendo os próprios códigos de verificação.
Consultoria de mudança no CanadáQuase 5 mil registros, dos quais 884 com senha em texto claro.
Consulado de país africano25 mil cadastros com endereço residencial e local de acolhimento em emergência.
Plataforma de criadores na ÍndiaMais de 100 mil mensagens privadas e dado de pagamento.

O caso das senhas de uso único é o mais instrutivo. Uma base que armazena o código enviado por SMS e o devolve a qualquer requisição transforma o segundo fator em formalidade. Não adianta o aplicativo do banco exigir o código se o serviço que o envia publica o histórico.

O custo de corrigir

A correção é habilitar a segurança por linha na tabela e escrever a política que descreve quem pode ler o quê. São duas instruções de SQL por tabela na forma mais simples, e a documentação do Supabase traz os modelos prontos para os casos mais comuns.

O trabalho real não está na correção. Está em descobrir que a tabela existe.

A aplicação que expôs os dados quase nunca é o sistema principal da empresa. É a página de campanha feita pela agência, o formulário de inscrição do evento, o protótipo que virou produção porque funcionava, a ferramenta interna que alguém montou em uma tarde. Nenhuma delas costuma estar no inventário de ativos do time de segurança, e é justamente por isso que ninguém revisou a política.

Roteiro de noventa dias

Primeiros trinta dias: descobrir

Dias trinta a sessenta: testar

Dias sessenta a noventa: corrigir e institucionalizar

A leitura de LGPD

Uma base com dado pessoal legível sem autenticação é acesso não autorizado a dado pessoal. Não é uma zona cinzenta.

Três consequências práticas para quem opera no Brasil. A primeira é que o relógio da comunicação começa quando a organização toma conhecimento, o que inclui o resultado do teste descrito acima. Descobrir e não registrar não pausa nada.

A segunda é que a responsabilidade não migra para a agência que construiu a aplicação. O controlador é quem determina a finalidade do tratamento, e é a empresa cujo formulário coletou o dado.

A terceira é sobre senha em texto claro, presente em parte das bases encontradas. Além do acesso indevido, há uma falha de segurança na própria forma de armazenamento, e ela é anterior ao incidente. Em uma eventual fiscalização, essa distinção pesa.

Três evidências que um conselho pode exigir

Evidência 1Inventário de aplicação por origem

A lista de aplicações web da organização com a indicação de quem construiu cada uma e com qual ferramenta. Sem essa lista, nenhuma das outras evidências é verificável.

Evidência 2Resultado do teste como visitante

Para cada aplicação com banco publicado, o registro da consulta feita com a chave pública e o que ela devolveu. É a prova de que a política existe e funciona.

Evidência 3Checagem no roteiro de publicação

A evidência de que a verificação virou etapa obrigatória antes da produção, e não uma ação pontual de campanha.

Leitura LATAMSEC

O que essa pesquisa mede, no fundo, não é a qualidade de um produto. É o que acontece com a segurança quando a velocidade de construção sobe e a revisão não acompanha.

Construir uma aplicação com banco, autenticação e publicação levava semanas e passava por pelo menos uma pessoa que sabia o que era política de acesso. Hoje leva uma tarde e pode não passar por ninguém. O ganho é real. O passivo também, e ele fica no banco, respondendo à internet, até alguém perguntar.

A pergunta que vale para o próximo trimestre não é sobre Supabase. É quantas aplicações a organização colocou no ar nos últimos doze meses sem que o time de segurança soubesse, e quantas delas guardam dado de pessoa real.

Fontes e aprofundamento

  1. UpGuard · Everything Everywhere: systemic data exposure in Supabase apps, pesquisa original de Greg Pollock com a metodologia e os casos nomeados.
  2. Supabase · Row Level Security, documentação oficial com os modelos de política e o comportamento da chave pública do projeto.
  3. Unite.AI · UpGuard study finds 16,326 Supabase databases exposing readable tables, com a leitura do recorte de desenvolvimento assistido por IA.
  4. OWASP · A01: Broken Access Control, referência para classificar e priorizar a categoria de falha descrita nesta análise.
Baixar a análise em PDF Voltar à central de recursos