Uma reportagem publicada em 7 de novembro de 2026 atribuiu à empresa de segurança Apiiro a identificação de 1.122 cópias públicas de um arquivo do Claude Code com pelo menos um segredo. O risco descrito aparece quando uma pessoa aprova para sempre um comando exato que contém uma senha ou um token: esse texto pode ser salvo no arquivo de configurações do projeto e acabar em um repositório público.
Se uma credencial literal já entrou no Git, troque-a antes de limpar os arquivos: apagar a cópia atual não remove o que ficou no histórico nem nos forks.
Como um comando aprovado pode guardar um segredo
Ao escolher “Yes, and don’t ask again” para um comando exato, a pessoa permite que Claude Code registre uma regra para esse comando em .claude/settings.local.json. Se a linha aprovada tiver uma senha ou um token escrito diretamente nela, esse valor pode ficar gravado em texto simples. Uma regra baseada em padrão é diferente: ela não precisa conter uma credencial literal.
O relato também diz que Claude Code acrescenta o arquivo às exclusões globais do Git do usuário quando o grava pela primeira vez dentro de um repositório. Essa proteção fica na configuração local daquela pessoa. Ela não cria uma regra no .gitignore compartilhado com o projeto e não apaga arquivos que já foram enviados ao GitHub.
O que os números atribuídos à Apiiro incluem
A Apiiro pesquisou 104.185 cópias públicas de .claude/settings.local.json, distribuídas por 103.617 repositórios. A reportagem atribuiu à empresa 1.122 cópias com segredos, somando 1.379 credenciais distintas nesse conjunto. Uma das empresas contatadas confirmou que sua chave estava ativa.
A contagem ampliada considera outros materiais além das cópias atuais do arquivo local. Por isso, os 2.539 segredos relatados em 1.994 repositórios não são uma segunda contagem do mesmo conjunto.
| Escopo | Materiais incluídos | Resultado atribuído à Apiiro |
Cópias públicas atuais de .claude/settings.local.json | 104.185 cópias em 103.617 repositórios | 1.122 cópias com segredos e 1.379 segredos distintos |
| Levantamento ampliado | Versões antigas, arquivos compartilhados .claude/settings.json e conversas salvas de agentes | 2.539 segredos em 1.994 repositórios |
O histórico do Git pode manter cópias antigas
Excluir o arquivo da versão atual do projeto não apaga automaticamente versões anteriores do histórico do Git nem cópias em forks. A Apiiro também relatou 734 segredos em versões antigas, distribuídos por 509 repositórios, e os mesmos segredos em 211 forks de 74 repositórios.
Nas varreduras relatadas, feitas sem a etapa de verificação das ferramentas, gitleaks sinalizou 564 dos 1.122 arquivos com segredos; TruffleHog sinalizou 643. Nenhuma das duas ferramentas sinalizou 215 arquivos.
| Resultado da varredura | Arquivos | Condição |
| Sinalizados por gitleaks | 564 de 1.122 | Varredura sem a etapa de verificação da ferramenta |
| Sinalizados por TruffleHog | 643 de 1.122 | Varredura sem a etapa de verificação da ferramenta |
| Não sinalizados por nenhuma das duas ferramentas | 215 de 1.122 | Varreduras sem as etapas de verificação das ferramentas |
Como responder se o arquivo foi enviado ao repositório
A sequência recomendada pela Apiiro começa pela busca: verifique os arquivos atuais e o histórico do Git em busca de comandos ou configurações com credenciais literais. Se encontrar uma credencial exposta, rotacione-a antes de iniciar a limpeza.
Depois, remova o arquivo do controle de versão e inclua uma regra para ele no .gitignore do repositório. Apague também regras locais que contenham valores secretos e examine o histórico e os forks em busca de cópias. Para comandos futuros, a Apiiro recomenda recorrer a variáveis de um gerenciador de segredos em vez de inserir a credencial diretamente no texto, além de preferir regras baseadas em padrões a permissões para comandos exatos.
Restringir a leitura de arquivos é outro controle
Uma discussão na comunidade Claude Code citou orientações para bloquear caminhos sensíveis com regras de negação para Read e afirmou que .claudeignore não controla o acesso das ferramentas de arquivo. Essa restrição trata da leitura de arquivos; não remove uma credencial já gravada em um comando aprovado nem cópias existentes no histórico do Git.