Grokseat

O vazamento do código-fonte do Claude Code da Anthropic

H
Hugo EmmanoellEngenheiro de Software
7 min de leitura

Na manhã de 31 de março de 2026, o pesquisador de segurança Chaofan Shou publicou no X uma mensagem direta: "Claude code source code has been leaked via a map file in their npm registry." Em poucas horas, o código-fonte completo do Claude Code estava espelhado em um repositório público no GitHub, acumulando mais de 41.500 forks antes do fim do dia. A Anthropic confirmou o incidente ainda na mesma manhã.

O que aconteceu

A Anthropic não foi hackeada. O que ocorreu foi tecnicamente simples e, em certo sentido, mais constrangedor do que uma invasão: um arquivo de source map foi acidentalmente incluído no pacote npm publicado do Claude Code.

Source maps são artefatos de debugging que conectam código bundlado e minificado de volta ao código-fonte original. Eles são úteis durante o desenvolvimento local, mas nunca devem ser publicados em produção, pois expõem exatamente o que a ofuscação pretende ocultar. O runtime Bun, que a Anthropic usa no Claude Code desde a aquisição da empresa em dezembro de 2025, gera esses arquivos por padrão. Alguém esqueceu de adicionar *.map ao arquivo .npmignore do projeto.

O arquivo de mapa apontava para um arquivo ZIP hospedado em um bucket Cloudflare R2 da própria Anthropic, acessível publicamente sem autenticação. Qualquer pessoa que soubesse onde procurar conseguiu baixar e descompactar o arquivo sem restrição alguma.

A Anthropic respondeu ao The Register com a seguinte nota: "Earlier today, a Claude Code release included some internal source code. No sensitive customer data or credentials were involved or exposed. This was a release packaging issue caused by human error, not a security breach. We're rolling out measures to prevent this from happening again."

O que foi exposto

O vazamento compreende 1.906 arquivos TypeScript com mais de 512.000 linhas de código. A arquitetura completa é construída sobre o runtime Bun, utiliza React com Ink para renderização de interface no terminal e Zod v4 para validação de schemas em runtime.

Entre os arquivos mais significativos estão o QueryEngine.ts, com 46.000 linhas responsáveis pelo motor principal de chamadas à API do LLM, streaming, cache e orquestração; o Tool.ts, com 29.000 linhas que definem os tipos de ferramentas e o sistema de permissões do agente; e o commands.ts, com 25.000 linhas que registram e executam os slash commands da ferramenta.

É importante delimitar o que não foi exposto: os pesos do modelo Claude em si permaneceram protegidos. O que vazou foi o "agentic harness", a camada de software cliente que envolve o modelo subjacente, instrui como usar ferramentas externas, gerencia permissões, coordena múltiplos agentes e aplica as guardrails de segurança. É a lógica de orquestração do cliente, não o modelo.

O que o código revelou

A análise da comunidade de desenvolvedores nas horas seguintes ao vazamento revelou detalhes da arquitetura interna que a Anthropic nunca havia divulgado publicamente.

O sistema de memória

A arquitetura de memória do Claude Code é estruturada em três camadas, conforme detalhado por analistas que examinaram o código exposto. Em vez do modelo convencional de "armazenar tudo e recuperar depois", o sistema usa um arquivo MEMORY.md como índice leve de ponteiros, com aproximadamente 150 caracteres por linha, que é carregado permanentemente no contexto. Esse índice não armazena dados: armazena localizações.

O conhecimento real do projeto fica distribuído em "topic files" carregados sob demanda. Transcrições brutas de sessões nunca são lidas de volta integralmente ao contexto, mas apenas consultadas para identificadores específicos. A disciplina de escrita é estrita: o agente só atualiza seu índice após um write de arquivo bem-sucedido, evitando que tentativas fracassadas poluam o contexto com informações inconsistentes.

Segundo análise da VentureBeat, essa abordagem resolve o problema de "context entropy", a tendência de agentes de IA ficarem confusos ou alucinatórios à medida que sessões longas crescem em complexidade. O código confirma que os agentes do Claude Code são instruídos a tratar sua própria memória como uma "dica", verificando fatos contra a base de código real antes de prosseguir.

KAIROS: o modo autônomo não divulgado

O código contém referências extensas a uma funcionalidade chamada KAIROS, mencionada mais de 150 vezes no código-fonte. O nome é uma referência ao conceito grego de "no momento certo".

KAIROS representa um modo de operação fundamentalmente diferente do atual: em vez de um agente reativo que responde a comandos, é um daemon autônomo sempre ativo em background. No modo KAIROS, o Claude Code opera durante a ociosidade do usuário, realizando um processo chamado "autoDream": consolidação de memória, mesclagem de observações dispersas, remoção de contradições lógicas e conversão de insights vagos em fatos verificados.

Trata-se de uma mudança de paradigma que a Anthropic não havia anunciado publicamente: de ferramenta reativa para agente genuinamente proativo, capaz de manter e consolidar conhecimento sobre um projeto de forma contínua.

O sistema de hooks

O código expõe um sistema de hooks com mais de 25 eventos de ciclo de vida que a Anthropic não havia documentado publicamente. Os eventos incluem PreToolUse, PostToolUse, UserPromptSubmit, SessionStart, SessionEnd e outros, distribuídos em cinco tipos de hooks: comandos shell, contexto injetado pelo LLM, loops completos de verificação do agente, webhooks HTTP e funções JavaScript.

Trata-se de uma API de extensão que permite integrar o Claude Code com sistemas externos em pontos muito granulares do ciclo de vida do agente, funcionalidade que abre possibilidades significativas para automação enterprise.

O codinome Capybara

O código confirmou a existência do modelo interno chamado Capybara, já mencionado em um vazamento anterior de posts de blog da própria Anthropic. Roy Paz, pesquisador sênior de segurança de IA da LayerX Security, analisou as referências e indicou que é provável que a empresa lance versões "fast" e "slow" do novo modelo, baseado no aparentemente maior janela de contexto indicada no código, e que será o modelo mais avançado no mercado quando lançado.

Há uma ironia notável aqui: a Anthropic havia construído internamente um subsistema chamado "Undercover Mode", projetado especificamente para evitar que a ferramenta revelasse acidentalmente codinomes internos em commits em repositórios públicos. O system prompt injetado durante o Undercover Mode instrui explicitamente o modelo a não mencionar codinomes internos de animais. Revelar acidentalmente o que havia construído mecanismos para esconder não passou despercebido pela comunidade.

Não é a primeira vez

Este é o terceiro incidente conhecido do mesmo tipo envolvendo o mesmo pacote. Versões anteriores do @anthropic-ai/claude-code, incluindo v0.2.8 e v0.2.28 lançadas em 2025, também incluíam source maps completos. A Anthropic removeu essas versões do registry após o problema ser identificado, mas cópias em cache permaneceram acessíveis via infraestrutura de mirror do npm.

Em fevereiro de 2025, um incidente similar expôs como a ferramenta funcionava internamente e como ela se conectava aos sistemas internos da empresa. Conforme documentado pelo The Register, a recorrência indica uma falha sistêmica no pipeline de build da Anthropic, não um erro isolado.

A fix técnica imediata é trivial: adicionar *.map ao .npmignore é suficiente para prevenir a classe inteira de exposição. O problema não é técnico. É de processo e revisão de release para um dos produtos mais lucrativos da empresa.

Há outra ironia relevante no histórico: em abril de 2025, a Anthropic emitiu um takedown notice contra um desenvolvedor que havia feito engenharia reversa do Claude Code, distribuído sob licença proprietária restritiva. A empresa havia agido ativamente para proteger a propriedade intelectual do produto nos tribunais. Expor acidentalmente esse mesmo código pela terceira vez gerou reação acentuada na comunidade de desenvolvimento.

Qual é o impacto real

Para os usuários individuais do Claude Code, o impacto imediato é zero. Nenhum dado de cliente foi exposto, nenhuma credencial foi comprometida, e a ferramenta continua funcionando normalmente.

O impacto é estratégico e competitivo. O Claude Code gerava mais de US$ 2,5 bilhões em receita anual recorrente até fevereiro de 2026, com 80% proveniente de clientes enterprise, segundo dados financeiros da Anthropic citados pela Fortune. A ferramenta é usada por empresas como Uber, Netflix, Spotify, Salesforce e Snowflake. O código exposto oferece a competidores um blueprint detalhado de como construir um agente de desenvolvimento de alto desempenho e commercially viable.

Conforme analisado por um profissional de cibersegurança consultado pela Fortune, o vazamento permite potencialmente que um concorrente faça engenharia reversa de como o "agentic harness" do Claude Code funciona e use esse conhecimento para melhorar seus próprios produtos. Alguns desenvolvedores já trabalham para criar versões open-source do harness baseadas no código exposto.

A reação da comunidade foi, como de costume, mista. Há quem veja no incidente uma oportunidade rara de estudar a arquitetura de uma ferramenta de produção de nível enterprise que nunca havia sido documentada publicamente com esse nível de detalhe. Há quem aponte a contradição entre o posicionamento da Anthropic como empresa focada em segurança responsável de IA e a recorrência de falhas operacionais básicas como essa.

O caso serve como lembrete para toda a indústria: build pipelines são parte da superfície de ataque de qualquer produto de software, e a segurança de um produto não termina no código em si. Ela se estende a como esse código é empacotado, publicado e distribuído.

Pronto para começar? Fale com a Bia IA para tirar suas dúvidas ou converse com um especialista.