Doze horas e cinco mil máquinas: a extensão do Claude Code que não era da Anthropic

Em algum momento de quinta-feira, uma build da extensão do Claude Code que estava no marketplace do Cursor deixou de ser o que dizia ser. Duas versões — 2.1.312 e 2.1.313 — carregavam um backdoor SSH persistente. Ficou listada por quase doze horas. A contagem do próprio Cursor de desenvolvedores afetados é «até 5.000».
Os detalhes vêm de um conjunto de textos de segurança publicados com um dia de diferença entre si: Step Security, Sophos, BleepingComputer, o blog de segurança da Microsoft e a Ars Technica, que enquadrou a linha do tempo com mais precisão. Segundo esses relatos, a extensão adulterada fez o que um backdoor deve fazer — abriu um caminho de entrada que sobrevive a um reboot, neste caso por SSH. O resumo do The Verge sobre o incidente observa que o payload coletava nomes de host, nomes de usuário e endereços IP.
Essa é a versão curta. A versão longa é sobre o que é um marketplace de extensões, e por que isso sempre ia acontecer.
O que foi comprometido, de fato
Não os servidores da Anthropic. Não o modelo Claude. Um canal de distribuição.
O Claude Code é distribuído como CLI e como extensões de editor. O Cursor mantém o próprio marketplace de extensões, do mesmo jeito que o VS Code, e a listagem em questão estava com a marca da extensão oficial do Claude Code. Para um desenvolvedor buscando «claude code» dentro do editor, a listagem parecia certa: nome certo, ícone certo, descrição certa.
O que rodava na instalação era uma build trojanizada. O mecanismo descrito nos relatos é um backdoor SSH persistente — uma modificação que permite a um atacante entrar na máquina depois, via SSH, sem precisar que o usuário faça mais nada. Para um notebook de desenvolvedor, é quase o pior payload possível. Não é um minerador de cripto que aparece no Monitor de Atividade. É uma porta silenciosa.

Por que desenvolvedores são o alvo ideal
Uma máquina de desenvolvedor comprometida não é só um notebook. É um conjunto de credenciais com alcance incomumente amplo: código-fonte de repositórios privados, tokens de CI, chaves de nuvem, strings de conexão de banco de dados num arquivo .env que alguém pretendia limpar em março, chaves SSH que confiam umas nas outras por toda uma frota.
Um backdoor SSH é especialmente adequado a esse ambiente, porque máquinas de desenvolvedor já rodam SSH, já têm arquivos authorized_keys e já esperam conexões de entrada de outras máquinas. Uma chave nova nesse arquivo não parece anômala como pareceria uma nova conexão de saída para um IP desconhecido.
Some o timing: quinta-feira, em dia útil, no meio de um ciclo de lançamento para muitos times. A janela não foi longa, mas doze horas bastam para algumas milhares de instalações se a listagem estiver perto do topo de um resultado de busca.
A parte que ninguém quer dizer em voz alta
Marketplaces de extensão não são lojas de aplicativos no sentido que os consumidores entendem. Estão mais para registros de pacotes. Existe um processo de revisão, mas ele é voltado a pegar comportamento obviamente malicioso no momento da submissão, não a verificar continuamente que o publicador continua sendo o publicador e que o binário continua sendo o binário.
Isso não é uma falha específica do Cursor. É a fraqueza estrutural de todo ecossistema que deixa terceiros publicarem código que roda com privilégios locais totais: npm, PyPI, extensões do VS Code, extensões de navegador e agora os marketplaces que cresceram em torno das ferramentas de código com IA. A superfície de ataque não é o modelo. É o instalador.
O que tornou este caso notável foi a marca. Uma extensão com o nome de um produto de IA conhecido, num marketplace onde a maioria dos usuários procura exatamente esse produto, é um atalho de confiança contra o qual é difícil se defender. O nome faz a engenharia social.
Como foi a resposta
A listagem saiu do ar, e o Cursor publicou uma contagem de usuários. Fornecedores de segurança publicaram indicadores. A Anthropic, segundo a cobertura, não foi quem distribuiu a build ruim — a extensão no marketplace do Cursor era um canal de distribuição separado do da própria Anthropic.
Essa distinção importa para atribuir culpa, mas não para o risco. Do ponto de vista do desenvolvedor, «instalei a extensão do Claude Code no marketplace dentro do meu editor» é uma ação única, e a cadeia de custódia por trás dela é invisível.
O que fazer esta semana
Se você usa o Cursor, ou qualquer editor com marketplace de terceiros, esta é uma boa semana para fazer três coisas entediantes.
Primeiro, liste suas extensões instaladas e confira os publicadores. Não os nomes — os publicadores, e de preferência a origem da instalação. Qualquer coisa que você não reconheça, remova. Qualquer coisa que duplique uma funcionalidade que você já tem de uma fonte oficial, remova.
Segundo, inspecione o ~/.ssh/authorized_keys nas suas máquinas de desenvolvimento. Você está procurando chaves que não reconhece. Num notebook que só se conecta para fora, esse arquivo costuma estar vazio ou nem existir, o que torna uma entrada inesperada fácil de achar.
Terceiro, troque as credenciais que aquela máquina alcançava. Esse é o passo caro, e é o que as pessoas pulam. Se você não consegue trocar tudo, troque o que doeria mais: chaves de provedor de nuvem, tokens de registro de pacotes e qualquer coisa com acesso de escrita a um repositório de produção.
Para times, acrescente mais um: fixe as versões das extensões e instale a partir de uma lista revisada, em vez de deixar cada pessoa instalar o que aparece bem colocado na busca. É uma política que a maioria dos times já tem para dependências npm e que quase nenhum tem para plugins de editor.
Por que ninguém notou por meio dia
Doze horas não é muito em termos absolutos, mas é muito tempo na vida de um canal de distribuição. Durante essa janela a extensão era instalável, instalável significava executável, e executável significava que todo desenvolvedor que clicou em instalar num dia útil normal estava potencialmente exposto.
A detecção, notavelmente, veio de fora. Fornecedores de segurança que monitoram comportamento suspeito sinalizaram; o marketplace não. Isso não é uma crítica específica ao Cursor — é como esses ecossistemas funcionam. Registros são otimizados para disponibilidade, não para monitoramento comportamental contínuo de cada artefato que hospedam. A economia de escanear cada atualização de cada extensão em tempo real é brutal, e o incentivo para fazer isso é fraco até algo quebrar.
A recuperação foi mais rápida que a detecção. Listagem retirada, avisos publicados, indicadores compartilhados. Mas a sequência importa: exposição primeiro, explicação depois. Para quem instalou durante a janela, a informação útil chegou depois da decisão que importava.
A lição incômoda
A categoria de ferramentas de código com IA passou dois anos competindo em capacidade: janelas de contexto, loops de agente, quantos arquivos a coisa consegue editar sem perder o fio. Passou quase nenhum tempo competindo em integridade de cadeia de suprimentos, porque até agora o modelo de ameaça era «o modelo escreve código ruim», não «a extensão é malware».
Cinco mil máquinas e doze horas é um incidente pequeno pelos padrões da última década de ataques à cadeia de suprimentos de software. Também é uma prévia. O próximo vai ser um servidor MCP, ou um pacote de skill, ou um plugin que um agente popular recomenda pelo nome. O padrão é o mesmo: um nome confiável, um canal de distribuição com verificação leve e um payload que não precisa ser barulhento.
A lição não é «não use extensões». É que «oficial» numa listagem de marketplace significa mais ou menos nada, e a única defesa que escala é tratar plugins de editor com a mesma desconfiança que você já aplica a um npm install aleatório de um pacote do qual nunca ouviu falar.
Artigos relacionados
A Meta está testando seus apps de IA mais estranhos primeiro no Sudeste Asiático
Um provador de IA na Indonésia, em Singapura e na Tailândia. Um diário de bicho de estimação nas Filipinas. Nenhum dos dois foi anunciado, e é justamente esse o ponto.
O Ollie tinha SOC 2 e US$ 7,5 milhões. Ainda assim, não conseguiu superar o Muse.
Um assistente familiar com privacidade em primeiro lugar, rodada seed liderada pela Khosla e auditoria SOC 2 de verdade, fecha em 6 de novembro. A lição não é sobre privacidade. É sobre distribuição.
A Runware quer construir data centers do jeito que Detroit construía carros
Trinta megawatts por dia até 2028, pods no ar em 48 horas, um gigawatt por mês. A restrição da capacidade de IA deixou de ser chip e passou a ser os dois anos que leva para construir um prédio.
O Genspark transformou uma equipe de cinema em um menu
Três modelos de linguagem dirigem, setenta versões de modelo executam, e o seu trabalho vira trinta e cinco aprovações seguidas. Um olhar prático sobre como é, de fato, a produção de vídeo orquestrada.