Um ataque à cadeia de suprimentos que atingiu o coração do desenvolvimento com IA
Na manhã de 29 de outubro de 2026, entre 2h27 e 13h35 no horário do Pacífico, um desenvolvedor que atualizava a extensão Claude Code no Cursor IDE — ou em qualquer IDE compatível com VS Code que consumisse do marketplace da Cursor — recebeu uma versão modificada e maliciosa da extensão oficial. O pacote, identificado como `Anthropic.claude-code` versão 2.1.313, continha um carregador de 66 linhas injetado no início do arquivo `extension.js`, que executava um script de instalação de backdoor SSH persistente antes de carregar o código legítimo da extensão.
A extensão, que tem mais de 40 milhões de instalações globais, é uma das ferramentas mais populares para integração de assistentes de IA no fluxo de trabalho de desenvolvimento. O que começou como um golpe aparentemente simples — uma versão trojanizada de um plugin — rapidamente se revelou um dos ataques mais sofisticados já direcionados ao ecossistema de desenvolvimento assistido por IA.
O que o malware fazia
O payload malicioso, conforme detalhado pela Phorion em sua advisory técnica e confirmado pela própria Cursor em seu aviso de segurança, executava uma cadeia de infecção cuidadosamente orquestrada. Primeiro, coletava informações do sistema: nome do host, nome de usuário, sistema operacional, arquitetura, caminho do diretório home, diretório de trabalho, email configurado no Git e endereço IP público. Em seguida, enviava esses dados — junto com os nomes de até 40 variáveis de ambiente que continham palavras-chave como "key", "token" ou "password" — ao servidor atacante no endereço IP 134.209.82.225.
A etapa mais preocupante era a instalação do backdoor SSH. O código adicionava uma chave SSH controlada pelo atacante ao arquivo `~/.ssh/authorized_keys`, marcando-a com o comentário `svc-telemetry`. Em seguida, tentava habilitar o serviço SSH local e abrir um túnel SSH reverso para o servidor do atacante. O malware instalava persistência em todas as três plataformas: no macOS, criava um LaunchAgent em `~/Library/LaunchAgents/com.apple.sysmond.plist`; no Linux, escrevia um script shell em `~/.config/.smt` e adicionava uma entrada `@reboot` ao crontab do usuário; no Windows, tentava criar uma tarefa agendada chamada `SysMon` e caía para a pasta Startup se o primeiro método falhasse.
Por que os atacantes não acessaram milhares de máquinas
Apesar da sofisticação do ataque, um detalhe técnico importante impediu que os atacantes alcançassem o acesso remoto efetivo na maioria das máquinas comprometidas: o código do malware continha um erro crítico ao tentar habilitar o serviço SSH local. Em quase todas as instalações de macOS e Windows, a ativação do serviço SSH requer privilégios de administrador. Como a extensão maliciosa não tinha direitos administrativos, essa etapa falhava silenciosamente — e, consequentemente, o túnel reverso nunca era estabelecido.
Isso significa que, embora o malware tivesse instalado a chave SSH e os mecanismos de persistência, os atacantes provavelmente não conseguiram efetivamente conectar-se às máquinas afetadas. A exceção seria em ambientes Linux, onde muitos desenvolvedores executam IDEs com privilégios de root ou têm o Remote Login habilitado por padrão, mas mesmo nesse caso o erro de verificação de privilégios pode ter impedido a conexão.
A Phorion, que identificou a ameaça através de suas ferramentas de detecção comportamental, descreveu a situação como um caso raro de malware que "sabe" que falhou mas continua executando todos os outros passos — enviando dados, instalando persistência, mas incapaz de abrir o túnel de acesso. O servidor atacante foi levado offline pela provedora de hospedagem envolvida, encerrando qualquer possibilidade remota de conexão.
O impacto real: dados coletados, não máquinas invadidas
O verdadeiro dano do incidente reside nos dados coletados e nas marcas deixadas nas máquinas. Mesmo sem acesso remoto, os atacantes obtinham informações que poderiam ser combinadas com outras fontes para reconstruir o perfil de um desenvolvedor: nome de usuário, email do Git, ambiente de trabalho, variáveis de ambiente que continham tokens e chaves de API. A própria Cursor confirmou que até 5.000 usuários foram impactados em sua plataforma, mas a extensão também estava disponível no Open VSX — o registro de extensões open source usado por VS Codium e outros forks — potencialmente ampliando o alcance.
A questão que permanece não é se os atacantes acessaram efetivamente as máquinas, mas por quanto tempo uma versão modificada da extensão oficial do Claude Code permaneceu no marketplace da Cursor e qual foi exatamente o escopo da coleta de dados. A Cursor disse que o pacote malicioso existiu por cerca de 11 horas, mas a extensão com auto-update pode ter sido baixada por usuários que não atualizaram no momento exato da janela de comprometimento, mas semanas depois.
A resposta e as perguntas sem resposta
A resposta da Cursor foi imediata: remover a versão maliciosa, desligar o marketplace por precaução, girar suas chaves, reconstruir o marketplace e publicá-lo novamente. A Anthropic publicou a versão 2.1.314 tanto no Open VSX quanto no Microsoft VS Code Marketplace. No entanto, a resposta foi criticada por dois motivos.
Primeiro, a Cursor afirmou que a versão maliciosa "não foi desenvolvida pela Anthropic", o que, tecnicamente verdade, pode ser enganosamente vago. O pacote foi carregado sob a conta verificada da Anthropic, com o mesmo ID de extensão `anthropic.claude-code`, e distribuído pelos mesmos canais oficiais — o que significa que, para o usuário, a linha entre "feito pela Anthropic" e "distribuído pela Anthropic" é praticamente inexistente.
Segundo, pesquisadores como Kevin Beaumont, da DoublePulsar, observaram que as versões substitutas publicadas pela Anthropic não removem os backdoors e mecanismos de persistência já instalados. Isso significa que desenvolvedores que instalaram a versão 2.1.313 durante a janela de comprometimento precisam executar manualmente scripts de remediação e verificar seus sistemas — o auto-update não resolve o problema, apenas o impede de se espalhar para novos usuários.
As perguntas sem resposta são tão preocupantes quanto os fatos confirmados: como exatamente os atacantes conseguiram publicar uma versão modificada sob a conta verificada da Anthropic? O sistema de publicação da Cursor foi comprometido, ou a própria conta da Anthropic? E o que o ataque revela sobre a fragilidade do modelo de confiança que sustenta o ecossistema de extensões de IDE no ano da IA?
O que é certo é que a cadeia de suprimentos de software — já vulnerável por natureza — ganhou uma nova camada de complexidade quando ferramentas de IA passam a ser distribuídas pelos mesmos canais que qualquer outro plugin. A próxima extensão maliciosa pode não cometer o mesmo erro ao habilitar o SSH. E na próxima vez, pode ser pior.
Fontes: Wired, Cursor, The Hacker News
✓ Fontes independentes cruzadas e verificadas antes da publicação