TecnologiaNoticias

Vazamento no Claude Code expõe chaves no GitHub

Um vazamento de segredos no Claude Code pode deixar senhas, tokens e chaves de API legíveis em repositórios públicos do GitHub. Segundo pesquisa da Apiiro citada pelo The Hacker News, 1.122 cópias públicas de um arquivo local do assistente continham ao menos uma credencial. O risco surge quando um desenvolvedor aprova um comando com a opção “Yes, and don’t ask again”: o comando pode ser salvo literalmente, inclusive com o segredo digitado.

O que está em risco

O arquivo .claude/settings.local.json guarda regras de permissão. Se uma regra registrar um comando específico com senha, token ou URL de banco, a credencial pode permanecer em texto claro.

Como o Claude Code pode registrar uma credencial

Por padrão, o Claude Code pede autorização antes de executar diversos comandos de shell. Ao escolher a aprovação permanente, o usuário cria uma regra em .claude/settings.local.json. Padrões como npm test * são menos problemáticos. Já um comando exato — por exemplo, com PGPASSWORD=, sshpass -p ou uma chave de API — pode levar o valor sensível ao arquivo.

PUBLICIDADE

O vazamento de segredos no Claude Code não termina quando o arquivo é apagado: commits antigos e forks podem continuar distribuindo as credenciais.

Pesquisa encontrou 1.379 segredos em arquivos locais

De acordo com o levantamento da Apiiro, foram localizadas 104.185 cópias de settings.local.json em 103.617 repositórios públicos. Cerca de 1,1% delas, ou 1.122 cópias, continham pelo menos um segredo, somando 1.379 itens. Entre eles havia 379 senhas de banco de dados, 43 logins SSH, 42 tokens de GitHub, GitLab e npm, além de 23 chaves AWS.

IndicadorResultado informado
Cópias públicas do arquivo104.185
Arquivos com segredo1.122
Segredos identificados1.379
Total ampliado com históricos e logs2.539 em 1.994 repositórios

A pesquisa também relata que arquivos removidos podem sobreviver no histórico do Git: 509 repositórios continham 734 segredos adicionais apenas em versões anteriores. Outros 211 forks de 74 projetos replicavam os mesmos dados. Por isso, tratar somente a cópia atual não resolve um incidente de credenciais expostas.

Dados sobre segredos expostos em arquivos do Claude Code
Gráfico divulgado na pesquisa sobre arquivos e credenciais expostos.

O que desenvolvedores devem fazer agora

A prioridade é a rotação de credenciais, antes da limpeza do repositório. Uma chave removida do arquivo pode continuar válida para quem a copiou. Em seguida, a equipe deve revisar a organização no GitHub, o histórico do Git e os forks relevantes.

  1. Procure .claude/settings.local.json e .claude/settings.json em todos os projetos.
  2. Revogue e substitua cada senha, token e chave de API já registrada.
  3. Execute git rm --cached .claude/settings.local.json e inclua o arquivo no .gitignore do projeto.
  4. Apague regras locais que contenham segredos e prefira variáveis de um gerenciador de segredos, como $DB_URL.
  5. Acione varredura de segredos no pre-commit, na CI e no histórico, com detecção de senhas em comandos.

Por que scanners podem não detectar o problema

O vazamento de segredos no Claude Code é especialmente difícil de identificar quando envolve senhas comuns inseridas em comandos. A Apiiro informa que, entre os 1.122 arquivos com segredos, Gitleaks sinalizou 564 e TruffleHog, 643; 215 não foram apontados por nenhum dos dois. Ferramentas costumam reconhecer formatos conhecidos de chaves, mas uma senha depois de um parâmetro de terminal pode parecer texto comum.

A documentação de permissões do Claude Code explica que regras aprovadas permitem executar comandos correspondentes sem novo pedido de confirmação.

Contexto e boas práticas para agentes de IA

O caso amplia a discussão sobre segurança de desenvolvedores e agentes de programação com IA. Pastas como .claude/, .cursor/, .gemini/ e arquivos de memória de agentes merecem o mesmo cuidado aplicado a arquivos .env. Eles também podem viajar em pacotes npm, imagens Docker, arquivos ZIP e pastas sincronizadas.

As informações desta matéria são atribuídas à investigação da Apiiro, à documentação de permissões e à documentação de configurações do Claude Code.

  1. O que causa o vazamento de segredos no Claude Code?

    A aprovação permanente de um comando pode salvar a linha completa em settings.local.json. Se ela tiver senha, token ou chave, o valor fica em texto claro e pode ser enviado ao GitHub.

  2. Apagar settings.local.json resolve a exposição?

    Não sozinho. O arquivo pode existir em commits antigos, forks e cópias. Primeiro revogue ou rotacione as credenciais; depois remova o arquivo do rastreamento e revise o histórico.

  3. Como evitar chaves de API em comandos aprovados?

    Use variáveis de ambiente ligadas a um gerenciador de segredos, em vez de escrever a credencial no terminal. Prefira regras por padrão e revise permissões do agente regularmente.

  4. Gitleaks e TruffleHog detectam todas as senhas?

    Não necessariamente. A pesquisa citada encontrou comandos com senhas que não foram identificados por ambos os scanners. Configure regras para credenciais em linhas de comando e faça revisão manual.

Considerações finais

O vazamento de segredos no Claude Code mostra que conveniência de automação e controle de credenciais precisam caminhar juntos. Para reduzir o impacto, equipes devem rotacionar dados expostos, remover arquivos locais do Git, analisar histórico e forks e impedir que senhas apareçam em comandos. A regra prática é simples: trate configurações de agentes de IA como potenciais contêineres de segredos.

Diogo Fernando

Apaixonado por tecnologia e cultura pop, programo para resolver problemas e transformar vidas. Empreendedor e geek, busco novas ideias e desafios. Acredito na tecnologia como superpoder do século XXI.