Apps feitos com vibe coding são seguros? 8 falhas a checar
- 0 visualizações
- 0 curtidas
- 0 comentários
- Todos os idiomas somados

Em resumo
Em 15 de novembro de 2026, apps feitos com vibe coding não são seguros por padrão: uma auditoria de 2026 encontrou ao menos uma vulnerabilidade em 91,0% de 200 apps publicados, principalmente controle de acesso falho [4]. A solução é uma lista curta de verificações, liderada pelas regras do banco de dados, chaves vazadas e falta de checagem de login [1][3][6].
Principais pontos
- Uma auditoria de 2026 com 200 apps de vibe coding publicados encontrou ao menos uma vulnerabilidade em 91,0% deles; o controle de acesso falho afetou 64,00% dos apps [4].
- Um estudo da ACM CCS de 2026 com 8.641 repositórios do Lovable mostrou que 61,2% tinham ao menos uma regra de leitura aberta a visitantes sem login [5].
- A Escape encontrou mais de 2.000 vulnerabilidades, mais de 400 segredos expostos e 175 casos de dados pessoais em mais de 5.600 apps públicos de vibe coding, e chama esses números de piso [3].
- O CVE-2025-48757 mostrou como isso acontece: 170 de 1.645 projetos do Lovable verificados em março de 2025 tinham tabelas legíveis sem regras de linha adequadas [1][2].
- A chave publishable do Supabase foi feita para ser pública, mas uma chave secret ou service_role no código do navegador dá acesso total e ignora todas as regras de linha [6][7].
- Em 15 de novembro de 2026, o Supabase diz que vai aposentar as antigas chaves anon e service_role até o fim de 2026, então apps de vibe coding mais antigos devem revisar suas chaves agora [8].
- Duas contas e um navegador sem login revelam as falhas mais comuns antes que estranhos as encontrem [4][5].
Nesta página 12 seções
- Apps feitos com vibe coding são seguros?
- O que os estudos de segurança encontram em apps de vibe coding?
- Por que ferramentas de IA criam apps inseguros?
- Quais 8 falhas de segurança devo checar primeiro?
- Como testar meu app de vibe coding contra essas falhas?
- Como corrigir regras abertas do Supabase e chaves vazadas?
- Os scanners de segurança integrados pegam tudo?
- É seguro usar apps que outras pessoas fizeram com vibe coding?
- Erros comuns
- Perguntas frequentes
- Glossário
- Fontes
Apps feitos com vibe coding são seguros?
Não por padrão: todos os grandes estudos citados aqui encontraram falhas graves de segurança em grande parte dos apps que examinaram [3][4][5]. Os apps costumam funcionar. O problema é o que eles permitem que estranhos façam.
Uma auditoria de 2026 reuniu 9.041 apps de código aberto criados com Claude Code e Lovable e examinou 200 que estavam publicados. Encontrou 1.186 vulnerabilidades, e 182 dos 200 apps (91,0%) tinham pelo menos uma [4]. Dessas falhas, 65,77% foram classificadas como críticas ou altas, incluindo 18,47% críticas [4].
Os autores também testaram se prompts e configurações de agentes melhores resolvem o problema. Eles o reduziram, mas não o eliminaram, e a mesma tarefa executada três vezes podia gerar um resultado seguro numa vez e inseguro na seguinte [4]. Ou seja, um resultado limpo em uma versão diz pouco sobre a próxima.
Para o básico do método, veja o guia da Pouyam Vibe Coding Explained: What It Is, How It Works and the Real Risks. Para um primeiro projeto, Vibe Coding for Beginners: How to Start Safely in 2026 traz um plano inicial. Esta página desce um nível: as falhas específicas e como testar cada uma.
O que os estudos de segurança encontram em apps de vibe coding?
Quatro fontes independentes apontam o mesmo ponto fraco: dados que a pessoa errada pode ler ou alterar [1][3][4][5].
- Auditoria de 200 apps publicados (2026): o controle de acesso falho foi a maior categoria, com 339 de 1.186 falhas (28,58%), e afetou 64,00% dos apps. A injeção afetou 54,00% e as falhas de autenticação, 51,50% [4].
- Estudo da ACM CCS 2026: em 8.641 repositórios do Lovable com histórico completo, 11,2% das regras de leitura estavam abertas a visitantes sem login e 61,2% dos repositórios tinham ao menos uma regra assim. Um teste de repetição confirmou a exposição em 353 de 400 repositórios da amostra [5].
- Escape (outubro de 2025): uma varredura passiva de mais de 5.600 apps públicos criados em plataformas como Lovable, Base44 e Create.xyz encontrou mais de 2.000 vulnerabilidades, mais de 400 segredos expostos e 175 casos de dados pessoais, incluindo prontuários médicos, IBANs (identificadores de contas bancárias), telefones e e-mails [3].
- CVE-2025-48757 (2025): uma varredura concluída em 21 de março de 2025 encontrou 303 endpoints de banco de dados em 170 de 1.645 projetos do Lovable, cerca de 10,3%, com regras de linha inadequadas [1].
A Escape ressalta que sua varredura evitou qualquer ação destrutiva, então os números são um piso; um teste mais profundo encontraria mais [3]. A mesma cautela vale para todos os números aqui: esses estudos contam o que conseguiam ver de fora.
Por que ferramentas de IA criam apps inseguros?
Porque as ferramentas buscam um app que funcione, e as regras de segurança dependem de detalhes do negócio que o prompt raramente explica [4][11].
Código que roda é fácil de checar: a página carrega, o botão responde. Quem pode ver cada registro é uma decisão de negócio, e se ninguém a escreve, a ferramenta precisa adivinhar. A auditoria de 2026 liga as falhas a oito padrões recorrentes, agrupados em três limites dos agentes de IA: memória, objetivos e conhecimento [4].
Testes amplos de modelos de IA mostram a mesma lacuna. O GenAI Code Security Report 2026 da Veracode concluiu que, em seus testes, cerca de 44% das tarefas de geração de código introduziram uma vulnerabilidade de segurança [11]. Um benchmark citado pela AWS mostrou que a melhor de 12 configurações de agentes resolveu corretamente 57% das tarefas, mas só 11,8% de forma correta e segura ao mesmo tempo [10].
Muitos apps de vibe coding também transferem a segurança para o banco de dados. O navegador fala direto com um banco hospedado, então as regras dele são a única barreira entre um visitante e cada linha [1][6]. Se as regras faltam ou são amplas demais, qualquer pessoa que saiba o endereço pode pedir tudo.
Quais 8 falhas de segurança devo checar primeiro?
Comece pelas falhas que os estudos mais encontram, em ordem de dano possível [1][3][4][5].
- Regras de banco de dados abertas: tabelas sem row level security ou com regras que deixam qualquer visitante ler todas as linhas. Foi a raiz do CVE-2025-48757 e dos achados da ACM [1][5].
- Controle de acesso falho: um usuário logado abre o registro de outro trocando um ID no endereço ou na requisição. Foi a maior categoria da auditoria de 2026 [4].
- Chaves secretas no navegador: uma chave secret ou service_role do Supabase, uma chave de pagamento ou de um provedor de IA colocada no código do front-end. A Escape encontrou mais de 400 segredos expostos [3][6].
- Checagem de login ausente ou fraca: páginas privadas ou rotas de API que respondem sem sessão. Falhas de autenticação atingiram 51,50% dos apps auditados [4].
- Injeção: dados do usuário que chegam a consultas ou ao HTML sem validação, encontrada em 54,00% dos apps auditados [4].
- Tabelas graváveis: regras que deixam visitantes inserir ou alterar dados, não só ler. No caso do CVE, uma requisição sem token de login inseriu um registro marcado como "pago" e pulou a etapa de pagamento [1].
- Respostas que vazam dados: APIs que devolvem registros inteiros, e-mails ou tokens quando a página só precisa de um nome. A Escape contou 175 casos de dados pessoais expostos [3].
- Acesso arriscado de agentes: um agente de código com credenciais de produção pode causar dano real; em julho de 2025, um agente apagou um banco de dados em produção durante um congelamento de código [10].
As falhas 1 a 4 cobrem a maior parte do que atacantes externos exploram, então teste-as primeiro.
Como testar meu app de vibe coding contra essas falhas?
Use o app como um atacante usaria: como estranho, como segundo usuário e lendo o que o navegador recebe [1][4][5]. Nenhum passo exige ferramentas especiais.
- Crie duas contas de teste. Crie um registro com a conta A, copie o endereço ou ID, entre com a conta B e tente abrir, editar e apagar o registro. Se funcionar, o controle de acesso está falho [4].
- Repita sem login. Abra os mesmos endereços numa janela anônima sem sessão. No caso do CVE, remover o cabeçalho de login bastou para driblar todas as checagens [1].
- Observe a aba de rede. Nas ferramentas de desenvolvedor do navegador, veja cada requisição da página e o que volta. As respostas devem ter só o que aquela tela precisa, nunca e-mails ou tokens de outros usuários [3].
- Procure chaves no código da página. Busque textos que comecem com sb_secret_, o rótulo service_role ou chaves de provedores, como de pagamento ou IA. Uma chave publishable é esperada; uma chave secret é uma emergência [6].
- Confira as regras de cada tabela. No painel do banco de dados, confirme que row level security está ativada em cada tabela e leia cada regra em termos simples: quem pode ler, quem pode gravar [7].
- Teste entradas estranhas. Cole textos muito longos, aspas e tags HTML em cada formulário e veja se o app quebra ou os mostra como código [4].
Teste apenas apps que são seus ou que você tem permissão para testar. Não sonde apps de outras pessoas sem permissão por escrito.
Como corrigir regras abertas do Supabase e chaves vazadas?
Ative row level security em todas as tabelas, escreva regras restritas, mantenha chaves secretas no servidor e troque qualquer chave vazada [6][7][8].
- Ative row level security em tudo. O guia do Supabase diz para ativá-la em todas as tabelas de um esquema exposto [7]. Depois disso, a chave pública não acessa nada até você adicionar regras [7].
- Remova permissões padrão. Em projetos que ainda as concedem por padrão, uma nova tabela pública começa com todos os privilégios já concedidos aos papéis sem login (anon) e com login (authenticated), e adicionar regras não os revoga [7]. Revogue-os e devolva apenas o que cada papel precisa [7].
- Escreva regras por usuário. A regra de uma tabela privada deve corresponder ao ID do usuário logado, e não apenas liberar qualquer pessoa logada. Evite regras sempre verdadeiras em tabelas sensíveis [2].
- Mantenha chaves secretas no servidor. A chave publishable do Supabase só é segura no navegador porque as regras de linha a limitam; as chaves secret e service_role ignoram todas as regras e devem ficar no código do servidor ou em variáveis de ambiente seguras [6].
- Troque chaves vazadas. Se uma chave secreta chegou ao navegador ou a um repositório de código público, troque-a e desative a comprometida, como recomenda o guia de chaves do Supabase [6].
Em 15 de novembro de 2026, a documentação do Supabase diz que vai descontinuar as antigas chaves anon e service_role até o fim de 2026 em favor das chaves publishable e secret [8]. As novas chaves secret retornam um erro (HTTP 401) quando usadas em um navegador, embora uma chave vazada ainda possa ser usada a partir de outras ferramentas [6][8]. Migrar agora é uma boa hora para revisar cada chave que um app usa.
Os scanners de segurança integrados pegam tudo?
Não: os scanners das plataformas ajudam, mas vários estudos mostram que eles deixam passar as regras mais importantes [1][2][5].
Em 2025, os pesquisadores por trás do CVE-2025-48757 viram que o scanner do Lovable só verificava se havia uma regra de linha, não se ela estava correta [1]. O alerta deles acrescenta que a checagem de publicação do Lovable aponta tabelas sem regras, mas não mostra se as regras são restritas o bastante [2]. Uma regra aberta passa por uma checagem assim.
O estudo da ACM confirma com números: uma parcela modesta de regras abertas, 6,3% em seis ferramentas, ainda deixou 56,9% dos repositórios com ao menos uma tabela exposta, porque uma regra aberta basta [5]. Os autores lançaram um verificador gratuito que aponta essas regras antes do commit [5].
Use scanners como primeiro filtro e faça você mesmo os testes com duas contas e sem login. A tabela abaixo resume os números.
É seguro usar apps que outras pessoas fizeram com vibe coding?
Tenha cuidado com qualquer app que peça dados pessoais, de saúde ou de pagamento, porque os usuários não conseguem ver como ele os protege [3][4]. A Escape encontrou prontuários médicos e IBANs (identificadores de contas bancárias) entre os dados expostos [3].
Alguns hábitos simples reduzem o risco. Use uma senha diferente para cada app novo, para que um vazamento não abra outros; o guia da Pouyam Password Managers Explained: How They Work and Whether They Are Safe explica como. Compartilhe só os dados de que o app precisa e prefira páginas de pagamento de provedores conhecidos a formulários dentro do app.
A principal responsabilidade é de quem cria. Se você publica um app que guarda dados de outras pessoas, faça as checagens acima antes do lançamento e depois de cada grande mudança, porque um único recurso novo pode reabrir uma falha já fechada [4][5].
| Estudo | Resultado | Fonte |
|---|---|---|
| Auditoria de 200 apps publicados (2026) | 91,0% tinham ao menos uma vulnerabilidade; 65,77% das falhas críticas ou altas | arXiv |
| Mesma auditoria | Controle de acesso falho em 64,00% dos apps; injeção 54,00%; autenticação 51,50% | arXiv |
| Estudo da ACM CCS 2026 | 61,2% de 8.641 repositórios do Lovable tinham uma regra de leitura aberta | ACM |
| Escape (outubro de 2025) | Mais de 2.000 vulnerabilidades, mais de 400 segredos, 175 casos de dados pessoais em mais de 5.600 apps | Escape |
| CVE-2025-48757 (março de 2025) | 303 endpoints em 170 de 1.645 projetos do Lovable | Matt Palmer |
| Veracode 2026 | Cerca de 44% das tarefas de código introduziram uma vulnerabilidade nos testes | Veracode |
Erros comuns
Achar que a chave pública do Supabase é o vazamento.
Como fazer certo: A chave publishable ou anon é pública por design; o risco real são regras de linha ausentes ou uma chave secret no código do navegador [1][6].
Testar só logado com a própria conta.
Como fazer certo: Teste com uma segunda conta e sem login; o controle de acesso falho foi a principal falha dos apps auditados [4].
Confiar num scanner que diz que row level security está ativada.
Como fazer certo: Leia cada regra; os scanners verificaram se a regra existe, não se ela é restrita [1][2].
Apagar uma chave vazada do código e seguir em frente.
Como fazer certo: Troque a chave e desative a comprometida [6].
Dar credenciais de produção a um agente de código.
Como fazer certo: Use dados de teste e credenciais limitadas, e mantenha backups; um agente já apagou um banco de dados em produção [10].
Perguntas frequentes
Apps feitos com vibe coding são seguros?
Não por padrão; uma auditoria de 2026 encontrou ao menos uma vulnerabilidade em 91,0% de 200 apps de vibe coding publicados [4].
Qual é a falha de segurança mais comum em apps de vibe coding?
O controle de acesso falho, ou seja, usuários que acessam dados que não são deles; afetou 64,00% dos apps auditados [4].
O que foi o CVE-2025-48757?
Uma falha em projetos gerados com o Lovable em que regras de linha do Supabase ausentes ou fracas expuseram dados; 170 de 1.645 projetos verificados foram afetados [1][2].
É seguro colocar a chave anon do Supabase no meu app?
Sim, se row level security estiver ativada com regras restritas; a chave secret ou service_role nunca deve estar no código do navegador [6][7].
Glossário
- Row level security (RLS)
- Regras do banco de dados que decidem quais linhas cada usuário pode ler ou alterar [7].
- Controle de acesso falho
- Uma falha que permite a um usuário ver ou alterar dados de outra pessoa [4][9].
- Chave publishable
- Uma chave do Supabase para código de navegador e de app; ela só acessa o que as regras de linha permitem [6].
- Chave secret
- Uma chave de servidor do Supabase com acesso total que ignora as regras de linha; nunca deve ser pública [6].
- CVE
- Um identificador público de uma falha de segurança conhecida, como o CVE-2025-48757 [2].
Fontes
- Statement on CVE-2025-48757 Matt Palmer · 2025-05-29
- CVE-2025-48757 Matt Palmer · 2025-05-29
- Methodology: How we discovered over 2k high-impact vulnerabilities in apps built with vibe coding platforms Escape · 2025-10-29
- Understanding the (In)Security of Vibe-Coded Applications arXiv
- POSTER: The Aggregation Gap: Row-Level Security Failures in Vibe-Coded Applications ACM CCS 2026
- API keys Supabase
- Row Level Security Supabase
- Migrating to publishable and secret API keys Supabase
- OWASP Top 10:2025 OWASP Foundation
- Can we ship a secure product with vibe coding? AWS Builder Center · 2026-11-10
- 2026 GenAI Code Security Report: AI Is Writing More of Your Code but Security Hasn’t Caught Up Veracode · 2026-07-28
Comentários
Principais comentários