Tópicos desta notícia (9)
- 01O que a Apiiro encontrou nos repositórios públicos
- 02Como o comando aprovado vira segredo no repositório
- 03Por que os scanners de segredo não pegam
- 04O que a Anthropic diz e o que ainda não prometeu
- 05O que uma PME brasileira deve fazer nesta semana
- 06O risco jurídico no Brasil: LGPD e prazo de comunicação
- 07Riscos e limites do achado
- 08Fontes
- 09O próximo passo
A opção “Yes, and don’t ask again” existe para reduzir cliques. Segundo a pesquisa da Apiiro publicada em 5 de novembro, ela também gravou senhas de banco, tokens de nuvem e chaves de API em arquivos que acabaram em 1.122 repositórios públicos do GitHub. A Anthropic reconhece o mecanismo e estuda uma correção, sem prazo.
O que a Apiiro encontrou nos repositórios públicos
Os pesquisadores Shmulik Cohen e Matan Giladi varreram o GitHub entre 1º e 3 de novembro e baixaram as 104.185 cópias públicas do .claude/settings.local.json, em 103.617 repositórios. Em 1.122 delas (1,1%) havia pelo menos um segredo real: 1.379 credenciais distintas, segundo o relatório da Apiiro.
O número cresce com versões antigas do arquivo, o settings.json compartilhado, transcrições de conversa e notas de passagem de serviço: 2.539 segredos em 1.994 repositórios, de 63 organizações. Entre os casos confirmados estão uma chave administrativa de nuvem de um fornecedor de banco de dados, uma senha de produção do Azure Postgres e a senha de proprietário do banco de um sistema de prontuário médico.
A distribuição explica o risco: são 379 senhas de banco de dados, 122 chaves service-role e 103 tokens de conta do Supabase — os dois últimos abrem, respectivamente, o banco inteiro e todos os projetos do cliente. Somam-se 43 logins SSH (alguns com senha de root em comando sshpass) e 42 tokens de GitHub, GitLab e npm.
Como o comando aprovado vira segredo no repositório
O caminho começa numa tarefa banal: pedir ao Claude Code para testar uma conexão ou rodar uma migração. O comando que o agente propõe carrega a credencial, porque sem ela não funciona. Ao aprovar com “Yes, and don’t ask again”, o Claude Code grava uma regra de permissão, e a regra é o próprio texto do comando, senha incluída.
A documentação oficial de permissões confirma o desenho: para comandos de shell, a aprovação vale permanentemente por repositório e por comando, e a regra é salva em .claude/settings.local.json na raiz do repositório. O arquivo deveria ficar na máquina, mas a proteção criada quando o Claude Code o gera — entrada no gitignore global do desenvolvedor — não viaja com o projeto nem alcança um arquivo já rastreado, um clone em outra máquina ou uma pasta que só depois vira repositório.
A consequência está medida: em 539 dos 1.105 repositórios com segredo que a Apiiro rastreou, um commit coassinado pelo Claude alterou o arquivo, com mediana de 217 dias desde o primeiro commit. E 211 forks de 74 repositórios carregam os mesmos segredos.

Por que os scanners de segredo não pegam
Os dois scanners mais usados foram rodados sobre as 104.185 cópias. O gitleaks marcou 564 dos 1.122 arquivos com segredo; o TruffleHog, 643. Em 215 arquivos, nenhum dos dois apitou.
O motivo é o formato. Scanners procuram assinatura de chave: prefixo de provedor, sequência aleatória longa. Uma senha depois de PGPASSWORD=, em sshpass -p ou num cabeçalho Authorization: Bearer é uma palavra comum numa linha de comando comum.
O padrão se repete fora do arquivo de permissões: 298 dos 76.011 settings.json compartilhados e 120 transcrições de conversa com agente em 87 repositórios. Não é exclusivo do Claude Code: qualquer agente que lê e altera arquivos amplia essa superfície, como já mostramos em segurança de agentes de IA.
O que a Anthropic diz e o que ainda não prometeu
Boris Cherny, chefe do Claude Code, respondeu no Hacker News em 7 de novembro que o time está vendo o que pode fazer para evitar o problema. Citou abordagens em protótipo — fazer o modo automático pegar esse caso e embutir varredura básica de segredo — sem data nem compromisso de versão. Sustentou que o arquivo deve ficar local, que as cópias expostas vieram de arquivos versionados à mão e que a varredura dos provedores de repositório deve ser ligada. Quando um leitor observou que o modo automático também pode salvar comandos sensíveis, respondeu que era uma boa observação. O comportamento segue documentado do mesmo jeito, e relatos no repositório do Claude Code datam de agosto de 2025, fechados sem correção.
O que uma PME brasileira deve fazer nesta semana
A ordem importa mais que a lista. Quem limpa o arquivo antes de trocar a senha deixa a credencial antiga válida em todo clone, fork e histórico que já a recebeu.
- Rotacione primeiro. Troque toda credencial que o arquivo guardou algum dia — senha de banco, token de API, chave de nuvem — e registre o que foi trocado e quando: esse registro vira prova de diligência.
- Destrackeie e ignore.
git rm --cached .claude/settings.local.jsontira o arquivo do índice, e a entrada precisa entrar no.gitignoredo repositório, não só no global. - Olhe o histórico.
git log --all --full-history -- .claude/settings.local.jsonmostra se ele já foi commitado. Se sim, a limpeza exige reescrever histórico comgit filter-repo, force-push e tratamento dos forks. - Pare de digitar segredo no comando. Referencie
$DB_URLa partir do gerenciador de segredos e aprove padrões comoBash(npm run:*): a regra salva guarda o nome da variável, nunca o valor. - Feche na origem. Inclua
.claude/no template de.gitignore, adicione verificação de segredo no pre-commit e na CI com regra paraPGPASSWORD=,sshpass -p,mysql -peBearer, e ligue a push protection do GitHub.

O risco jurídico no Brasil: LGPD e prazo de comunicação
Se a credencial abre um sistema que trata dados pessoais, ela é dado de autenticação em sistemas — um dos critérios que a Resolução CD/ANPD nº 15/2024 usa para caracterizar incidente com risco relevante. Nesse caso, o controlador comunica a ANPD e os titulares em até três dias úteis a partir do conhecimento, prazo que dobra para agentes de pequeno porte. Não é automático: depende de avaliação do controlador e do encarregado, mas uma senha de banco com cadastro de clientes exige essa avaliação nas primeiras horas, junto com a rotação.
Riscos e limites do achado
A pesquisa é um retrato de 1º a 3 de novembro, e nenhuma credencial foi testada: “segredo real” ali significa formato de provedor ou host público, não validade comprovada. O total de 2.539 inclui histórico e transcrições; a contagem de cópias públicas com segredo é 1.379. A Apiiro vende segurança para desenvolvimento com agentes, um interesse comercial a considerar, e nada no estudo prova invasão.
Fontes
- Apiiro — pesquisa original (5/11/2026, atualizada em 8/11/2026)
- Claude Code Docs — Configure permissions (10/11/2026)
- Hacker News — comentário de Boris Cherny (7/11/2026)
- Ars Technica — cobertura independente (10/11/2026)
- Resolução CD/ANPD nº 15/2024 (10/11/2026)
O próximo passo
Usar agente de codificação não é o problema; deixar a credencial entrar no comando e o comando entrar no repositório é. A decisão desta semana é operacional: inventário de credenciais, rotação, verificação no CI e uma política de aprovação que não dependa da memória de cada desenvolvedor. A Canis desenha esse processo com pontos de aprovação definidos — IA e automação para a sua empresa.