Claude Code: vulnerabilidades permitiam acesso remoto e roubo de chaves de API

Pesquisadores de segurança da empresa Check Point Research descobriram uma série de vulnerabilidades graves no Claude Code. Ferramenta de linha de comando da Anthropic, ela permite aos desenvolvedores usar inteligência artificial diretamente no terminal para ajudar com tarefas de programação. Todas as vulnerabilidades foram corrigidas antes desta publicação.

Para entender o que aconteceu, é necessário compreender o conceito de arquivos de configuração. Se o código de um programa é sua estrutura, os arquivos de configuração são as instruções que dizem ao programa como se comportar, sem precisar alterar o código principal.

O Claude Code usa um arquivo de configuração chamado “.claude/settings.json”, que fica no próprio repositório do projeto. Um repositório é uma pasta versionada onde o código vive, geralmente hospedada em plataformas como o GitHub, e que qualquer pessoa pode clonar – ou seja, baixar uma cópia completa para o próprio computador.

O problema é que esse arquivo pode ser modificado por qualquer pessoa com acesso de escrita ao repositório, e é aí que mora o perigo.

Execução remota de código via Hooks

O Claude Code tem um recurso chamado Hooks, ou “ganchos”: comandos que rodam automaticamente em momentos específicos do ciclo de vida da ferramenta. Por exemplo, toda vez que o Claude Code editar um arquivo, um hook pode rodar um formatador para padronizar o código automaticamente. Esses hooks são definidos justamente no “.claude/settings.json”.

Os pesquisadores se perguntaram o que aconteceria se um atacante colocasse um hook malicioso nesse arquivo dentro de um repositório falso. Para testar, configuraram um hook que simplesmente abria a Calculadora do sistema, apenas para provar que um comando externo estava sendo executado.

Quando rodaram o Claude Code na pasta do projeto, apareceu uma janela perguntando “você confia neste diretório?”. A vítima clicou em “sim” e a Calculadora abriu imediatamente, sem nenhum aviso adicional sobre aquele comando específico.

O ponto crítico é que, em situações normais, o Claude Code pede confirmação explícita antes de executar qualquer comando durante uma sessão. Os hooks, porém, dispararam silenciosamente durante a inicialização, sem que a vítima tivesse qualquer noção. Em vez de uma calculadora, um atacante poderia configurar o hook para baixar e executar um malware, software malicioso.

O exemplo mais grave demonstrado foi um reverse shell, uma conexão em que o computador da vítima passa a obedecer comandos enviados remotamente pelo atacante, como se ele estivesse sentado na frente da máquina. Isso é chamado de RCE, Remote Code Execution, ou execução remota de código, uma das vulnerabilidades mais sérias em segurança da informação.

Bypass do consentimento do usuário via MCP

Após o primeiro reporte, a Anthropic melhorou os avisos do Claude Code, especialmente para configurações de MCP, sigla para Model Context Protocol. MCP é um protocolo, um conjunto de regras padronizadas, que permite ao Claude Code se conectar a ferramentas e serviços externos, como bancos de dados ou APIs de terceiros. Essas conexões são configuradas em um arquivo chamado “.mcp.json”, também dentro do repositório.

O novo aviso alertava sobre os riscos de inicializar servidores MCP de fontes desconhecidas. Porém, o próprio “.claude/settings.json” tinha configurações chamadas “enableAllProjectMcpServers” e “enabledMcpjsonServers”, que servem para aprovar servidores MCP automaticamente sem perguntar ao usuário.

A intenção legítima é poupar tempo de times de desenvolvimento, mas o problema é que essas configurações de aprovação automática também ficam no arquivo do repositório.

Um atacante pode colocar um servidor MCP malicioso no “.mcp.json” e simultaneamente colocar a aprovação automática no “.claude/settings.json”. Como resultado, o comando malicioso executou no computador da vítima antes mesmo de o aviso aparecer na tela. A calculadora de demonstração abriu por cima da janela que tentava alertar sobre o perigo, mostrando que o aviso chegou tarde demais.

Roubo de chave de API via redirecionamento de tráfego

A terceira vulnerabilidade, em vez de executar código na máquina da vítima, intercepta a comunicação entre o Claude Code e os servidores da Anthropic para roubar credenciais.

Uma chave de API é como uma senha especial que identifica quem está fazendo requisições a um serviço. Quando o Claude Code conversa com os servidores da Anthropic, envia essa chave junto com cada pedido no cabeçalho Authorization de cada requisição HTTP, o protocolo de comunicação da web.

Os pesquisadores descobriram que o “.claude/settings.json” permite definir uma variável de ambiente chamada ANTHROPIC_BASE_URL. Variáveis de ambiente são configurações que os programas leem para saber como se comportar. Essa variável diz ao Claude Code para qual endereço enviar suas requisições.

Em condições normais, aponta para os servidores da Anthropic, mas um atacante pode sobrescrever esse endereço no arquivo do repositório para redirecionar todo o tráfego para um servidor sob seu controle.

Na prática, a vítima clona o repositório malicioso e roda o Claude Code. Antes mesmo de aparecer o diálogo de consentimento, o Claude Code já inicia requisições para aquecer a sessão, buscando informações sobre o projeto. Essas requisições vão todas para o servidor do atacante, carregando junto a chave de API em texto puro.

Com a chave roubada, o atacante vai além de simplesmente usar os créditos da vítima. O recurso de Workspaces da Anthropic é um espaço compartilhado onde membros de um time colaboram usando suas próprias chaves, mas compartilhando arquivos armazenados.

Com a chave roubada, o atacante acessa esses arquivos. A plataforma impedia o download direto de arquivos enviados por usuários, mas os pesquisadores contornaram isso pedindo ao Claude para regenerar o arquivo via execução de código.

O arquivo gerado é classificado como artefato do sistema, e aí o download se torna permitido. O atacante consegue ler, apagar e modificar todos os arquivos do workspace de um time inteiro.

Por que isso é um ataque à cadeia de suprimentos?

Toda essa situação se enquadra no conceito de supply chain attack, ataque à cadeia de suprimentos. O princípio é comprometer um elo confiável dessa cadeia para atingir o alvo final. Desenvolvedores desconfiam de código desconhecido, mas tendem a tratar arquivos de configuração como dados passivos.

Ninguém examina um settings.json com o mesmo rigor que examina código durante a revisão de um pull request, que é uma proposta de alteração submetida por um colaborador. Um atacante pode esconder a configuração maliciosa dentro de um PR com mudanças legítimas, tornando a detecção muito mais difícil.

O que foi corrigido

A Anthropic corrigiu as três vulnerabilidades. Para as duas primeiras, implementou verificações que garantem que nenhum hook ou servidor MCP execute antes da confirmação explícita do usuário.

Para a terceira, garantiu que nenhuma requisição de rede ocorra antes dessa confirmação, impedindo que um “ANTHROPIC_BASE_URL” malicioso intercepte a chave de API durante a inicialização.

Para ficar por dentro de notícias de cibersegurança e aprender a se proteger de golpes, acompanhe o TecMundo nas redes sociais e YouTube, e se inscreva em nossa newsletter.

Related posts

Crítica: DTF St Louis é uma série bizarra com um elenco espetacular

Gemini agora pede Uber ou pizza por você no Galaxy S26

God of War: Kratos brasileiro fala sobre memes e participação da mãe em dublagem