Ao vivo 18/11 · Turma 318 nov às 19:00 MSK — aula prática gratuita de agentes de IA · Turma 3 ao vivo começa 23/11Aula 18/11 →Turma 3 (23/11)
LançamentoAnálise · No radarQodo Blog→ original

Claude Code deixou segredos em 1122 arquivos públicos do GitHub por causa do «Don't ask again»

Quando você clica em «Don't ask again» no Claude Code, o agente grava a permissão no arquivo de configurações do projeto. Se o comando continha um token ou senha, ele vai parar no arquivo junto com o comando. Analistas da Qodo encontraram esses segredos em 1122 arquivos de configuração públicos no GitHub. As configurações do agente já são código e devem ser revisadas como qualquer outro commit.

Processado por IA de Qodo Blog; editado por Hamidun News
Claude Code deixou segredos em 1122 arquivos públicos do GitHub por causa do «Don't ask again»
Fonte: Qodo Blog. Colagem: Hamidun News.
Ouvir artigo
Ficha técnica e números-chave
ParâmetroDados
Fonte originalQodo Blog ↗
Editor-chefe
Dado-chave #1Adicione .claude/settings.local.json ao .gitignore antes do primeiro commit
Não cole tokens nos comandosuse variáveis de ambiente
Dado-chave #3Conecte um scanner de segredos no pre-commit e no CI para a pasta .claude

Você pede ao agente para chamar uma API, ele pede permissão para executar o comando, você está cansado de clicar em «Yes» pela décima vez e escolhe «Don't ask again». Conveniente. Mas a Qodo descobriu que esse botão tem um efeito colateral: em 1122 arquivos de configuração públicos no GitHub apareceram segredos que o próprio Claude Code salvou ali.

Como um segredo chega à configuração

O Claude Code tem um sistema de permissões. Quando você concorda em «não perguntar novamente» sobre um comando específico, o agente acrescenta uma regra a um arquivo de configurações dentro da pasta .claude. Há um settings.json compartilhado, que normalmente é commitado junto com o projeto, e um settings.local.json local para regras pessoais.

O problema é que a regra descreve o comando literalmente, com todos os argumentos. Digamos que você pediu ao agente para fazer uma requisição via curl e colou o token diretamente no cabeçalho. O agente vai memorizar essa linha inteira, e o token acabará no arquivo em texto aberto. Isto é uma ilustração do mecanismo, não uma citação do relatório. Mas a lógica é exatamente essa: você não «salvou» nada, apenas clicou em um botão de conveniência.

Depois age a inércia humana de sempre. Alguém commita a pasta .claude inteira, porque ali há «configurações úteis para a equipe». O repositório acaba sendo público, e o segredo fica à vista.

Por que isso não é detalhe

Estamos acostumados a ver segredos vazarem de .env, de configurações de nuvem, de strings fixas no código. Os arquivos de configuração de agentes não se encaixavam nesse quadro: eram vistos como «preferências pessoais do editor», como o tema de cores. Mas ali já estão permissões executáveis: o que o agente pode rodar sem perguntar. Ou seja, o arquivo tem dois papéis ao mesmo tempo: política de segurança e potencial repositório de segredos.

Há algo ainda mais importante. Esses arquivos não são escritos por uma pessoa, mas por uma ferramenta, e em resposta a um clique, não a uma decisão consciente de «salvar a configuração». Ninguém relê o que não escreveu. Daí a conclusão da Qodo: as configurações do agente devem ser revisadas como código.

O que fazer agora mesmo

  • Verifique seus repositórios. Procure em .claude/ strings parecidas com chaves, tokens e senhas, inclusive no histórico do git. Remover o arquivo no último commit não basta: o histórico permanece.
  • Rotacione tudo o que encontrar. Se um token esteve alguma vez em um repositório público, considere-o comprometido.
  • Proteja o arquivo local. O settings.local.json deve estar no .gitignore. Não presuma que alguém já fez isso.
  • Tire os segredos dos próprios comandos. Passe-os por variáveis de ambiente ou por um gerenciador de segredos; assim a regra conterá o nome da variável, não o valor.
  • Ative a automação. Um scanner de segredos no pre-commit e no CI e, no GitHub, também push protection. Adicione .claude ao CODEOWNERS para que mudanças nas permissões do agente não passem sem revisão.
  • Não abuse do «Don't ask again». Para comandos com argumentos sensíveis, é melhor confirmar a cada vez ou escrever uma regra restrita manualmente.

Limitações e ressalvas

O relatório foi publicado pela Qodo, fornecedora de ferramentas de code review. O tema é da área dela, e ela o apresenta de acordo. Além disso, pelo anúncio não dá para saber quantos dos segredos encontrados estavam ativos. E 1122 arquivos é o que apareceu na busca pública, não o quadro completo: ninguém contou os repositórios privados.

Ainda assim, a crítica não é só a um produto. O mesmo mecanismo de «memorizar o comando» existe em outras ferramentas de agentes, e as mesmas perguntas se aplicam a elas. Uma expectativa razoável em relação aos desenvolvedores de agentes: mascarar ou não salvar valores que pareçam segredos e avisar antes de gravar.

Resumo

As ferramentas agênticas criam uma nova classe de artefatos: configurações que se escrevem sozinhas, são executadas com os seus privilégios e vão parar no git com facilidade. Trate-as como código: revisão, varredura, .gitignore. Sai mais barato do que lidar com as consequências de uma chave vazada.

História

Perguntas frequentes sobre a notícia

Como um segredo chega à configuração?

O Claude Code tem um sistema de permissões. Quando você concorda em «não perguntar novamente» sobre um comando específico, o agente acrescenta uma regra a um arquivo de configurações dentro da pasta .claude. Há um settings.json compartilhado, que normalmente é commitado junto com o projeto, e um settings.local.json local para regras pessoais. O problema é que a regra descreve o comando literalmente, com todos os argumentos.

Por que isso não é detalhe?

Estamos acostumados a ver segredos vazarem de .env, de configurações de nuvem, de strings fixas no código. Os arquivos de configuração de agentes não se encaixavam nesse quadro: eram vistos como «preferências pessoais do editor», como o tema de cores. Mas ali já estão permissões executáveis: o que o agente pode rodar sem perguntar. Ou seja, o arquivo tem dois papéis ao mesmo tempo: política de segurança e potencial repositório de segredos. Há algo ainda mais importante.

O que fazer agora mesmo?

Verifique seus repositórios. Procure em .claude/ strings parecidas com chaves, tokens e senhas, inclusive no histórico do git. Remover o arquivo no último commit não basta: o histórico permanece. Rotacione tudo o que encontrar. Se um token esteve alguma vez em um repositório público, considere-o comprometido. Proteja o arquivo local. O settings.local.json deve estar no .gitignore. Não presuma que alguém já fez isso. Tire os segredos dos próprios comandos.

ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Hands-On AI Engineering · Hamidun Academy

Build & Ship Production AI Agents Without Boilerplate Code

Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.

Start 72h Free Trial →Vibe-Coding Intensive
O que você acha?
Carregando comentários…