Se você instalou o Claude Code no Cursor na última quinta-feira, precisa assumir o pior por um minuto e auditar sua máquina agora. Uma versão adulterada da extensão ficou disponível por cerca de 11 horas dentro do marketplace oficial e pode ter atingido até 5 mil instalações. Não era um download obscuro de fórum, era o fluxo normal de confiança, aquele clique rápido em install entre um commit e outro, com ícone certo, nome certo e descrição convincente.

É exatamente isso que torna o caso tão incômodo para quem constrói com IA todos os dias. A gente se preocupa com prompt injection, com vazamento pelo modelo, com chave de API exposta no GitHub, mas o ataque veio por baixo, pela camada que quase ninguém revisa mais: a extensão do editor. E quando o seu editor tem acesso ao código inteiro, ao terminal e às variáveis de ambiente, comprometer a extensão é praticamente o mesmo que comprometer o desenvolvedor.

O fato

Segundo o próprio Cursor, uma versão modificada da extensão Claude Code foi publicada no marketplace compatível com VS Code e ficou no ar por aproximadamente 11 horas antes de ser derrubada. A Anthropic, criadora do Claude, não teve nenhum envolvimento com essa publicação. Era um pacote que se passava pelo original, mas com código extra embutido para coleta de dados e tentativa de persistência.

Esse código extra tentava coletar dados de reconhecimento como hostname, nome de usuário, sistema operacional e endereço IP público. Além disso, tentava configurar uma forma de acesso remoto para o atacante. O Cursor afirma que essa segunda parte provavelmente falharia na maioria das máquinas porque exigiria privilégios de administrador, o que segura boa parte dos casos no macOS, no Linux e no Windows com UAC ativado. Mas isso está longe de significar que nada aconteceu.

Depois da descoberta, a resposta foi drástica. O Cursor removeu a extensão e tirou todo o marketplace do ar de forma preventiva. O serviço só foi restabelecido depois de um trabalho com provedores para neutralizar a infraestrutura do malware e confirmar que não havia risco adicional. A empresa diz que nenhuma outra extensão foi afetada, mas não explicou em detalhe como um pacote adulterado passou pela verificação inicial, e esse silêncio é um sinal de alerta por si só.

Como funciona na visão de operador

Pense na arquitetura real. Uma extensão de VS Code ou de Cursor não é só um plugin visual, é um processo Node.js rodando com os mesmos privilégios do seu usuário. Ela pode ler arquivos do workspace, executar comandos no terminal integrado, fazer requisições de rede e observar eventos do editor. Uma extensão de assistência de código como o Claude Code precisa, por design, de acesso amplo, porque ela lê o projeto, sugere edições, aplica diffs e roda comandos. Quando esse nível de acesso cai na mão errada, o estrago é silencioso.

O padrão provável aqui é clássico de supply chain. O atacante pega um pacote VSIX legítimo, injeta um script de ativação no ponto de entrada da extensão ou no evento de inicialização, adiciona uma chamada para um domínio externo e republica com metadados copiados. Para o usuário, tudo parece igual. A diferença está em poucas linhas que fazem um POST com os dados da máquina e tentam baixar uma segunda etapa. É plausível que o envio fosse apenas um beacon inicial, com triagem no servidor para decidir quem valeria um ataque mais direcionado.

Para o atacante, custo e latência são quase zero. Publicar no marketplace não custa nada, a coleta é um POST simples para uma infraestrutura descartável, que pode ser um VPS barato ou funções serverless que são apagadas em horas. A janela de 11 horas é mais do que suficiente quando o alvo está em hype. Todo mundo quer testar a integração nova do Claude Code no Cursor, ninguém confere hash do pacote, ninguém olha o código da extensão antes de instalar. Cinco mil instalações em meio dia, nesse contexto, é um número totalmente crível.

Por que o acesso remoto falhou dessa vez

A informação de que o acesso remoto exigiria privilégios de admin sugere uma tentativa de criar serviço persistente, escrever em diretório de sistema, modificar registro ou instalar um binário auxiliar. Em condições normais isso trava sem sudo. Mas não se engane com essa boa notícia parcial. Um processo em nível de usuário já consegue ler arquivos .env, chaves em pastas mal protegidas, tokens de AWS e GCP, histórico de shell, cookies de sessão e, principalmente, todo o código proprietário aberto no workspace. Para um ataque focado em propriedade intelectual ou em credenciais de cloud, isso já basta.

O que isso muda na prática

Quem ganha com esse episódio são os times que já tratavam a IDE como superfície crítica. Quem perde é quem instalava extensão no modo automático. Se você lidera engenharia ou trabalha como freelancer com acesso a código de clientes, a regra mudou na prática. Extensão passa a entrar no mesmo controle que você aplica para dependências npm, pacotes Python ou imagens Docker. Precisa de allowlist, versionamento fixo e revisão antes de liberar para o time.

  • Desinstale agora qualquer versão do Claude Code instalada na quinta-feira pelo marketplace do Cursor e reinstale apenas pela fonte oficial verificada, conferindo nome do publisher, data de atualização e repositório de origem.
  • Se você instalou no período da janela, trate como incidente: gire chaves de API, tokens de cloud, chaves SSH usadas naquela máquina, senhas de banco de dados em .env e revogue sessões do GitHub, Vercel, AWS e OpenAI.
  • Verifique conexões de saída recentes, processos estranhos na inicialização e arquivos alterados no workspace. Em time, bloqueie temporariamente novas instalações até confirmar a versão segura e documente qual build foi liberada.

A ação prática mínima, mesmo se você acha que não foi afetado, é congelar instalações por alguns dias e fixar versões. Não use latest de marketplace para ferramenta que lê código privado. Baixe o VSIX de fonte oficial quando possível, confira o hash se disponível e mantenha um inventário simples das extensões permitidas no time. Parece burocracia, mas depois desse caso virou higiene básica, como travar o package-lock.

O problema real não é essa extensão

A tensão aqui é maior do que um pacote malicioso isolado. O modelo atual de marketplaces de extensões foi feito para velocidade, não para segurança. A verificação é em grande parte automatizada, o publisher pode ser falsificado com pequenas variações e o usuário não tem como diferenciar um VSIX legítimo de um adulterado só pelo visual. O Cursor, ao derrubar o marketplace inteiro, admitiu na prática que não tinha como garantir isolamento rápido do problema. Isso resolveu o incidente, mas moveu o gargalo para a confiança.

E tem outro ponto que ninguém quer discutir. Ferramentas de coding com IA pedem cada vez mais permissões: ler o repo inteiro, executar terminal, acessar MCP servers, conectar na cloud. Cada permissão nova aumenta o blast radius de um supply chain. Será que esse modelo escala sem um sistema de assinatura verificada e sandbox real para extensões? O custo de revisar tudo manualmente não compensa para o Cursor, mas o custo de um vazamento de código proprietário pode quebrar uma startup. Estamos trocando produtividade imediata por risco acumulado, e essa conta uma hora chega.

Conclusão

No fim, foi uma janela curta, com coleta simples e acesso remoto provavelmente frustrado, mas com potencial para 5 mil máquinas mapeadas. Se você instalou essa extensão, não espere confirmação oficial para agir, gire seus segredos hoje. E fica a pergunta que vale para todo o ecossistema: quantas outras extensões que você usa agora têm o mesmo nível de acesso e nunca foram auditadas?