28 pontos por GN⁺ 29 일 전 | 4 comentários | Compartilhar no WhatsApp
  • O código-fonte completo do Claude Code foi exposto externamente por meio de arquivos de source map (map) no registro do npm, revelando sua estrutura interna e funcionalidades
  • Os arquivos vazados incluem componentes centrais como system prompts, telemetria, modo de bypass e Undercover Mode
  • A causa apontada é a ausência de configuração no .npmignore e a geração padrão de source maps pela ferramenta de build bun
  • A análise indica que o código tem quase nenhuma regra de proteção ou mitigação de viés, existindo apenas proteção mínima de tom
  • A comunidade ironizou o caso como uma “auto-open-sourceização da IA”, destacando-o como um grande incidente de vazamento causado por descuido na gestão de segurança

Incidente de vazamento do código-fonte do Claude Code

  • Foi confirmado que o código-fonte completo do Claude Code foi exposto externamente por meio de arquivos de source map (map) no registro do npm
    • O link divulgado aponta para um arquivo compactado no formato src.zip, contendo a estrutura do código e suas funções internas
    • Com isso, componentes internos como system prompts, telemetria, modo de bypass e Undercover Mode vieram a público
  • O caso é citado como o segundo vazamento não intencional sofrido pela Anthropic em um ano
    • Na comunidade, a causa foi atribuída a um erro de configuração de build: “alguém não adicionou os arquivos *.map ao .npmignore
    • Como a ferramenta de build bun gera source maps por padrão, o fato de isso não ter sido desativado foi apontado como o problema
  • Alguns usuários entenderam erroneamente que esses arquivos vazados continham o modelo Claude ou código de acesso ao backend, mas
    • source maps mostram apenas a estrutura do app, funções e fluxo do código, e não incluem pesos do modelo nem permissões de acesso ao sistema
    • Portanto, eles não servem para executar o modelo, mas são úteis para engenharia reversa, busca de bugs e análise de arquitetura
  • O código vazado incluía um subsistema chamado Undercover Mode
    • Trata-se de um recurso projetado para impedir que o Claude exponha informações internas por engano
    • No entanto, por erro de configuração de desenvolvedores humanos, o próprio recurso acabou sendo revelado publicamente
  • Pessoas que analisaram o código apontaram a ausência total de regras de tratamento para classes protegidas ou mitigação de viés
    • Não há guardrails, filtros por palavra-chave ou classificadores relacionados a atributos sensíveis como raça, gênero ou religião
    • Foi identificado apenas “Minimal tone protection”, sem qualquer política de mitigação de viés

Reação e debate na comunidade

  • Na comunidade, o caso foi descrito como a “ironia da open-sourceização”, junto com piadas como “o repositório quer ser livre
    • Surgiram muitas reações satíricas como “o Claude libertou a si mesmo” e “a IA se tornou open source sozinha”
    • Também se espalhou o humor crítico de que “criaram a melhor ferramenta de coding com IA do mundo e esqueceram o *.map
  • Alguns usuários alertaram para os riscos de segurança
    • Houve críticas ao comportamento de baixar sem pensar links r2.dev de procedência incerta
    • Também apareceram reações autodepreciativas como “a comunidade que discutia segurança em IA clicou em um arquivo zip não verificado”
  • Também foram levantadas dúvidas como “isso é o começo do fim do Claude?” e “foi um vazamento intencional ou um erro?”
    • Compartilhou-se a reação de que “alguém dentro da Anthropic deve ter tido a pior segunda-feira possível”
  • A comunidade também debateu as possibilidades de uso do código vazado
    • Surgiram perguntas como “o que dá para fazer agora?” e “dá para reconstruir o Claude Code com base nisso?”
    • O apelido “openclaude” começou a circular, e foi mencionada a possibilidade de isso virar um projeto open source não oficial

Informações adicionais

  • Os 5 maiores arquivos entre os códigos divulgados são os seguintes
    1. cli/print.ts – 5.594 linhas
    2. utils/messages.ts – 5.512 linhas
    3. utils/sessionStorage.ts – 5.105 linhas
    4. utils/hooks.ts – 5.022 linhas
    5. screens/REPL.tsx – 5.005 linhas
  • Alguns usuários compartilharam materiais de análise em nível de código por meio de um link do DeepWiki
  • De forma geral, o caso é visto como um exemplo de como um simples erro na configuração de publicação no npm pode levar a um vazamento em larga escala de código de IA

4 comentários

 
colus001 29 일 전

O OpenCode é bom o suficiente, então fico me perguntando se realmente precisa de algo a mais haha

 
bighead 29 일 전

Vendo o /buddy realmente funcionando...
parece até que é de verdade...
mas também parece que pode ser uma brincadeira de 1º de abril..

 
gggnews 29 일 전

https://github.com/kk-r/skillify-skill Teve até gente que liberou em open source algo para funcionar de forma semelhante, já que vazaram comandos internos inesperadamente úteis haha

 
GN⁺ 29 일 전
Comentários do Hacker News
  • A maior perda para a Anthropic foi a exposição do roadmap do produto por meio de feature flags
    Em especial, veio à tona o ainda não divulgado “assistant mode” (codinome kairos)
    Se você pedir para o Claude analisar a base de código, ele encontra um monte de recursos ocultos
    Por exemplo, Buddy System (um personagem ASCII em estilo tamagotchi) e Undercover mode (recurso para remover informações internas de commits de funcionários)

    • No “Undercover prompt” também há uma menção a Claude Capybara
      Link para o código relacionado
    • Uma configuração pessoal do Claude Code que eu havia publicado como open source no passado ficou totalmente ultrapassada por causa disso
      Veja clappie.ai
      Há sobreposição de recursos como integração com Telegram (CC Dispatch), Crons (CC Tasks) e cachorro ASCII animado (CC Buddy)
    • Se você perguntar diretamente ao binário com o Claude, ele consegue encontrar todas essas feature flags
    • Na verdade, o Buddy System é a pegadinha de 1º de abril deste ano
      O formato é o de tirar e criar um pet em estilo gacha, e existem até pets lendários
      A ideia era liberar isso aos poucos mirando viralização no Twitter
  • É interessante que a Anthropic não tenha apagado o pacote de fato, mas apenas o marcado como deprecated com a mensagem “Unpublished”
    npm unpublish remove o pacote por completo, enquanto npm deprecate apenas o mantém com um aviso
    Parece ter sido uma tentativa de dificultar o download dos sourcemaps
    Link do pacote npm

    • A mensagem de commit foi deixada de forma brincalhona, algo como “undo / undo / unpublish / ctrl-z / ctrl-c / No, stop…”
    • No npm, se houver mais de 100 downloads, não é possível fazer unpublish
    • Dá para sentir que a Anthropic está dogfooding seu próprio produto e testando ativamente
    • Como sabem que isso não pode desaparecer completamente da internet, parecem ter optado por apenas marcar como “não era para ser público”
  • Não é a primeira vez que ocorre esse tipo de vazamento
    Em fevereiro de 2025 já houve algo parecido
    Blog relacionado / Thread no HN

  • Todos os spinner verbs foram revelados
    Link para o código relacionado

    • Agora está dando 404, mas este link ainda funciona
    • Fico feliz que “reticulating” esteja incluído; agora só falta “splines” para ficar perfeito
    • Essas strings ficam em texto puro dentro do binário, então é fácil encontrá-las com grep
      Dá até para substituí-las diretamente
    • Fico curioso sobre o que está acontecendo na página de issues
    • Isso me lembra de quando um jogo de 2015 recebeu acusações equivocadas de ser gerado por IA por causa de um recurso parecido
      Agora vivemos num mundo em que até pequenos toques de humor despertam suspeita de IA
  • src/cli/print.ts é a função mais complexa da base de código
    São 3.167 linhas, 12 níveis de aninhamento, 486 pontos de ramificação, 21 funções internas etc.
    É o tipo de coisa que deveria ser dividido em pelo menos 8 a 10 módulos

    • O tratamento assíncrono em src/ink/termio/osc.ts também é confuso
      Ele executa wl-copy, xclip e xsel em sequência, mas não fica claro se isso é async ou não
    • Mas a complexidade da estrutura do código não é necessariamente algo ruim
      Code smells sob a ótica humana podem funcionar de outra forma em código de LLM
      LLMs escrevem código de maneira diferente de humanos, e é necessário um novo paradigma de análise
      Se você impuser regras de programação humanas, pode acabar repetindo os mesmos bugs
      É preciso uma nova abordagem evolutiva chamada Vibe coding
    • Quem usa CC há muito tempo já sabe que essa parte é a origem dos bugs
      Além disso, a Anthropic fecha automaticamente bugs sem atividade após 60 dias
    • A lentidão talvez esteja funcionando, na prática, como um recurso de limitação de velocidade
    • O código é tão complexo que já surgem piadas do tipo “isso é trabalho do Larry”
  • Há uma regex para detectar emoções negativas nos prompts dos usuários
    Código relacionado
    Certas palavras são alvo de logging

    • Uma empresa de LLM fazendo análise de sentimento com regex parece uma fabricante de caminhões usando cavalos
    • Em 2011, minha startup também vendia análise de sentimento no Twitter de forma parecida
      Empresas como Apple e Bentley também eram clientes
    • Na prática, isso é algo como uma métrica de “WTF por minuto”
      A ideia seria que, quando o Claude desse uma resposta esquisita, os engenheiros vissem isso e melhorassem o sistema
    • Isso não parece uma otimização, mas apenas o resultado de um LLM implementando literalmente a instrução “registre a insatisfação do usuário”
    • Se for o código real, fora o logger não há nenhuma parte que o chame
  • Eu pessoalmente não acho que código JS/TS ofuscado seja grande coisa, já que não é código de máquina de qualquer forma
    Preferiria que o CLI fosse open source

    • Provavelmente evitam abrir porque a qualidade do código interno é baixa
      Recentemente também houve um bug no fluxo de login OAuth que gerava uma URL incorreta
    • Dizem que “o CLI não tem nada demais”, mas ao ver a geração de contexto e a estrutura de subagentes, na prática ele é bem interessante
      Estou verificando isso agora mesmo
    • Só pelas convenções de nomenclatura já dá para perceber a forma de pensar da equipe e o roadmap
      Ofuscação não consegue esconder isso
  • Houve uma brincadeira sobre rodar isso com Malus ou com o Claude Code para criar uma versão open source
    Claro, não era para fazer isso de verdade

    • Malus não é um projeto real, mas uma sátira
      Link da apresentação no FOSDEM
      A ideia é traduzir código em texto e depois de volta para código, para parecer uma implementação clean room
      Ironicamente, as próprias respostas de LLM já são derivadas de código open source
    • Também há quem diga que, como o Claude Code foi escrito pelo Claude, não há copyright
    • O problema é que não dá para contornar a autenticação OAuth
      A Anthropic poderia detectar isso e banir a conta
    • Há também a ironia de zero contribuições open source
    • Talvez claw-code seja um projeto relacionado
  • ANTI_DISTILLATION_CC é um recurso de proteção contra roubo de modelo embutido no Claude Code
    Em cada requisição de API, ele injeta anti_distillation: ['fake_tools'], para que o servidor adicione definições falsas de ferramentas ao prompt de sistema
    A ideia é contaminar os dados caso um modelo concorrente esteja raspando o tráfego para treinar

    • Parece que realmente teve efeito
      O modelo Qwen 27B foi destilado com base no Opus 4.6 e apresentou erros de uso de ferramentas
      Tweet relacionado
    • É difícil acreditar que a Anthropic tenha feito esse tipo de pesquisa com uma intenção puramente nobre
    • Mas hoje em dia o rate limiting está tão pesado que o serviço perdeu utilidade prática
    • Se a estrutura for essa, em que o servidor injeta definições falsas de ferramentas no cliente, fico curioso se o modelo foi treinado para ignorá-las
      Será que Sonnet ou Opus também receberam esse tipo de veneno de dados?
    • Também fica a dúvida de por que esse recurso está no código do cliente
  • Foi revelado que o Claude Code usa Axios
    Tweet relacionado / Thread no HN

    • A versão atual usa Axios 1.14.0, ou seja, a versão imediatamente anterior à 1.14.1 que continha código malicioso
      Para bloquear atualizações automáticas, basta adicionar export DISABLE_AUTOUPDATER=1 à variável de ambiente
      Depois, confirme no claude doctor que o estado está como Auto-updates: disabled