Extensão Claude Code adulterada instalou uma backdoor SSH em máquinas de programadores
Uma versão adulterada da extensão Claude Code para VS Code foi distribuída a partir do marketplace de extensões da Cursor durante cerca de onze horas, a 29 de outubro de 2026. Quem a instalou, ou a recebeu por atualização automática nesse intervalo, ficou com uma backdoor SSH funcional, um mecanismo de persistência em todos os grandes sistemas operativos de secretária e um beacon que enviava o perfil da máquina para um servidor controlado pelo atacante. A Cursor estima que foram afetados, no máximo, 5.000 utilizadores.
O que aconteceu
A Cursor confirmou um incidente de segurança no marketplace de extensões do seu IDE, que assenta no registo Open VSX. Entre cerca das 02:27 e as 13:35, hora do Pacífico, de 29 de outubro, o marketplace serviu um pacote modificado que se identificava como anthropic.claude-code versão 2.1.313. A Anthropic não construiu esse pacote. A Cursor colocou o marketplace temporariamente offline para o remover e afirma que as restantes extensões distribuídas pelo mesmo canal não foram afetadas.
A versão maliciosa foi entretanto retirada e a Anthropic publicou uma versão limpa, a 2.1.314, tanto no Open VSX como no Microsoft VS Code Marketplace. A Cursor diz estar a contactar diretamente os utilizadores afetados. Não foi apurado quem está por trás do ataque.
A adulteração em si era compacta: um carregador de 66 linhas foi colocado antes do bundle JavaScript principal da extensão. Qualquer erro no carregador é silenciosamente ignorado e a extensão legítima arranca depois normalmente, pelo que, do ponto de vista do utilizador, nada parece errado.
O que faz o carregador
O implante é acionado depois do arranque do VS Code e novamente quando o webview da extensão é aberto. A partir daí percorre uma lista de intrusão curta mas completa:
- Acesso SSH. Acrescenta uma chave pública controlada pelo atacante ao
~/.ssh/authorized_keys, com a etiquetasvc-telemetry, para se confundir com chaves de serviço legítimas. - Exposição. Tenta ativar o serviço SSH local em Windows, Linux e macOS e abre depois um túnel SSH inverso para um servidor em
134.209.82[.]225. O túnel expõe a porta 22 da vítima ao operador, volta a ligar-se automaticamente se cair e corre com a verificação da chave do host desativada. - Persistência. No Windows regista uma tarefa agendada que corre como SYSTEM, no Linux uma entrada cron
@reboote no macOS um LaunchAgent com um nome que imita um componente de sistema da Apple. Um script oculto em~/.configreconstrói a chave e reinicia o túnel após cada reinício. - Reconhecimento. Após uma curta espera, envia um perfil da máquina por HTTP sem cifra para a porta 8099 do mesmo servidor.
O perfil inclui o IP público da máquina, o nome do host, o utilizador local, o sistema operativo e a arquitetura do CPU, a pasta pessoal e o diretório de trabalho atual, o e-mail global configurado no Git e os nomes de até 40 variáveis de ambiente cujo nome contenha KEY, TOKEN, SECRET, PASS, AWS ou GCP. Os valores dessas variáveis não seguem no beacon inicial, mas só os nomes já dizem ao operador que fornecedores de cloud, sistemas de CI e tipos de credenciais existem na máquina. Um login SSH bem-sucedido permitir-lhe-ia ler os valores diretamente.
Um pormenor atenuante: ativar o serviço SSH exige privilégios de administrador, que a extensão não tem na maioria das máquinas macOS e Windows. Nessas máquinas o login pelo túnel falha. Ainda assim, a chave fica plantada, a persistência fica instalada e o beacon é enviado, pelo que qualquer instalação dentro do intervalo deve ser tratada como comprometida, independentemente da plataforma. Até agora não foi observado nenhum payload de segunda fase.
Porque é que isto importa
As máquinas dos programadores estão entre os alvos mais valiosos de qualquer organização. Guardam chaves de cloud, tokens de CI, credenciais Git, material de assinatura e código-fonte, e costumam ter acesso alargado à rede. Um túnel SSH inverso não é uma fuga passiva de dados; é acesso interativo que permite a um operador executar comandos e mover ficheiros à vontade.
A atualização automática tornou o ataque isento de fricção. O programador não precisou de clicar em nada; um IDE configurado para manter as extensões atualizadas pôde descarregar a versão maliciosa sozinho.
É também o segundo compromisso da cadeia de distribuição de ferramentas de desenvolvimento em cerca de uma semana. Dias antes, os binários de release da ferramenta oficial de linha de comandos de um fornecedor de cloud foram substituídos por malware que rouba credenciais, através de uma conta de maintainer sequestrada. Os atacantes identificaram claramente a camada de distribuição das ferramentas para programadores como um ponto fraco, e os marketplaces, registos e pipelines de release fazem agora parte do modelo de ameaças.
O que fazer
- Verifique a exposição. Confirme se a
anthropic.claude-code2.1.313 foi instalada a partir do marketplace da Cursor entre as 02:27 e as 13:35 PT de 29 de outubro de 2026. As atualizações automáticas contam. - Isole as máquinas afetadas da rede antes de qualquer outra coisa.
- Remova a chave. Apague a entrada
svc-telemetrydo~/.ssh/authorized_keyse reveja o ficheiro à procura de qualquer outra coisa que não reconheça. - Limpe a persistência. Remova a tarefa agendada no Windows, a entrada cron
@rebootno Linux, o LaunchAgent falso no macOS, o script oculto em~/.confige quaisquer ficheiros de chave.stk_*que restem na pasta temporária. - Corte o canal. Termine qualquer processo
sshouautosshque aponte para134.209.82[.]225, bloqueie esse endereço na firewall de saída e procure nos registos de proxy e firewall ligações para ele, sobretudo na porta 8099. - Rode tudo. Trate todas as credenciais presentes na máquina como expostas: chaves de acesso à cloud, tokens de API, credenciais Git e de registos de pacotes, chaves SSH e sessões ativas. A lista de nomes de variáveis de ambiente recolhida pelo beacon é, na prática, a lista de compras do atacante.
- Atualize e restrinja. Instale a 2.1.314 a partir de um marketplace oficial e reveja que extensões podem atualizar-se automaticamente e a partir de que fontes.
- Trate-o à escala. As organizações devem encarar isto como um incidente, não como uma limpeza individual, e verificar a remediação em todas as máquinas que correm o IDE afetado.
A parte mais difícil de um incidente destes é a cauda longa: as credenciais recolhidas do portátil de um único programador tendem a ressurgir semanas depois nos mercados clandestinos. A nossa equipa de monitorização da Deep/Dark Web vigia exatamente isso, sinalizando tokens, chaves e contas de programador expostas ligadas à sua organização, para que uma exposição silenciosa não se transforme na próxima violação.
