Claude Code expôs senhas e chaves em 1.122 arquivos públicos no GitHub

Senhas e chaves de API que desenvolvedores digitaram em comandos aprovados no Claude Code estão em repositórios públicos do GitHub, onde qualquer pessoa pode lê-las. É o que mostra uma pesquisa da empresa de segurança Apiiro, publicada em 5 de novembro de 2026 e repercutida pelo The Hacker News.

O problema está no modo “Yes, and don't ask again” (“Sim, e não pergunte novamente”). Ao aprovar um comando com essa opção, o assistente de programação da Anthropic salva a regra de permissão no arquivo .claude/settings.local.json do projeto — e, quando a regra vale para um comando exato, o comando inteiro é salvo palavra por palavra, incluindo qualquer senha ou token digitado nele, em texto simples.

O que a Apiiro encontrou

Os pesquisadores varreram o GitHub público e encontraram 104.185 cópias do arquivo em 103.617 repositórios. Destas, 1.122 cópias (cerca de 1,1%) continham ao menos um segredo, somando 1.379 segredos distintos apenas nas versões atuais do arquivo local. Somando o histórico do git, o arquivo compartilhado .claude/settings.json e registros de conversas com agentes, o total chega a 2.539 segredos em 1.994 repositórios, envolvendo 63 organizações.

  • 379 senhas de banco de dados — mais de um terço dos segredos abre acesso direto a um banco de dados;
  • 43 logins SSH de servidores públicos;
  • 42 tokens de GitHub, GitLab e npm;
  • 23 chaves AWS;
  • Entre os casos mais graves, segundo os pesquisadores, estão a chave de nuvem com nível de administrador de um fornecedor de bancos de dados e a senha de proprietário de um banco de dados de prontuários médicos.

Apagar o arquivo do projeto não desfaz o vazamento: versões antigas continuam no histórico do git e em forks. Os pesquisadores encontraram outros 734 segredos em versões antigas do arquivo, em 509 repositórios, e 211 forks de 74 repositórios carregando os mesmos segredos. Na segunda-feira da semana da publicação, todos os arquivos com segredos ainda estavam no branch principal dos repositórios — e, em metade deles, estavam lá havia pelo menos 217 dias.

Por que os detectores não pegaram tudo

Os pesquisadores testaram os detectores de segredos gitleaks e TruffleHog sobre as 1.122 cópias com segredos: o gitleaks sinalizou 564 e o TruffleHog, 643 — e 215 não foram sinalizados por nenhum dos dois. A maioria das falhas são senhas digitadas dentro de comandos, que não seguem o formato conhecido de uma chave e passam por palavras comuns em uma linha de comando.

Há um detalhe de design no centro do problema: o Claude Code adiciona o arquivo às exclusões globais do git do usuário quando o cria, mas nunca o adiciona ao .gitignore do próprio projeto — então a proteção não viaja com o código. Em 539 dos 1.105 repositórios rastreados, um commit assinado pelo Claude como coautor alterou o arquivo, o que sugere que o próprio agente frequentemente faz o commit do arquivo.

O que fazer agora

A recomendação dos pesquisadores é girar as credenciais antes de qualquer limpeza:

  1. Busque .claude/settings.local.json e .claude/settings.json na sua organização no GitHub e verifique o histórico do git, mesmo onde os arquivos já foram apagados;
  2. Gire primeiro: troque todas as senhas, tokens e chaves que esses arquivos já contiveram, antes de limpar;
  3. Remova o arquivo local do versionamento com git rm --cached .claude/settings.local.json e adicione-o ao .gitignore do repositório;
  4. Abra o arquivo no seu computador e apague qualquer regra que contenha um segredo, mesmo que ele nunca tenha sido enviado ao GitHub;
  5. Nunca coloque segredos dentro de comandos: use variáveis de um gerenciador de segredos, como $DB_URL, para que a regra salva guarde o nome da variável, e não o segredo;
  6. Aprove padrões, como Bash(npm run:*), em vez de comandos únicos.

Um alerta antigo, sem resposta

Usuários do Claude Code já haviam relatado esse comportamento: um relatório de bug enviado em 11 de agosto de 2025 dizia que comandos aprovados com chaves de API e tokens eram armazenados palavra por palavra no settings.local.json. Um bot automatizado encerrou o relatório como “não planejado” em 3 de janeiro, após 60 dias sem atividade. Segundo os pesquisadores, os quatro relatórios relacionados citados no estudo foram encerrados pelo mesmo bot — o mais recente na véspera da publicação — e nenhum recebeu resposta da Anthropic.

É importante marcar o limite do que foi confirmado: a Apiiro não testou se as credenciais encontradas ainda funcionam — “segredo real”, no estudo, significa um valor que correspondeu a um formato conhecido ou a um contexto verificado, com concordância de um revisor de IA. Uma das empresas notificadas confirmou que sua chave estava ativa no momento da descoberta. Dos 16 agentes de programação cuja documentação os pesquisadores compararam, o Claude Code é o único confirmado que salva o comando aprovado completo em um arquivo do projeto por padrão.

O Geekiki já cobriu outro caso de segurança envolvendo o Claude Code: Claude burlou o monitor de segurança da Anthropic com ficção e apicultura.

Fontes

Crédito da imagem: The Hacker News.

Nota de transparência: esta matéria foi produzida com auxílio de inteligência artificial, com cruzamento de informações de fontes públicas da internet, incluindo a pesquisa original da Apiiro e a cobertura do The Hacker News. Os fatos foram verificados nas fontes citadas; consulte as fontes originais para confirmar os detalhes.

Muse