Uma cópia manipulada da extensão Claude Code, publicada no marketplace de extensões do Cursor com o nome de Anthropic, instalou um backdoor SSH persistente em computadores macOS e Windows que receberam as versões 2.1.312 ou 2.1.313 em 29 de outubro de 2026. Desinstalar a extensão não o elimina. A verificação é um único comando, e está mais abaixo.
Cursor afirma que as versões maliciosas não foram desenvolvidas pela Anthropic. Engenheiros da Anthropic explicaram no Hacker News que os sistemas da empresa não foram comprometidos e que as cópias do VS Code Marketplace oficial e do Open VSX não foram afetadas. Phorion, a empresa de segurança que publicou a primeira análise técnica, já expandiu sua lista de versões afetadas para coincidir com a do Cursor. No momento de publicar esta nota, nem Cursor nem Anthropic informaram como o atacante obteve acesso para publicar, nem quantos desenvolvedores instalaram a versão maliciosa.
É um caso de manual de ataque à cadeia de suprimentos: ninguém precisou clicar em nada estranho. Bastou que a IDE atualizasse uma extensão conhecida.
Estou afetado pela extensão falsa de Claude Code no Cursor?
Você está no escopo se as três condições forem atendidas:
- Você usa Cursor e tinha a extensão de Claude Code (
Anthropic.claude-code) instalada do marketplace do Cursor. - Você trabalha em macOS (Apple Silicon, darwin-arm64) ou Windows (win32-x64). São os dois builds que o Cursor lista.
- A extensão foi atualizada para 2.1.312 ou 2.1.313 durante a janela que o Cursor indica: aproximadamente entre 2:27 e 13:35 (horário do Pacífico) de 29 de outubro de 2026.
Se você instalou Claude Code do VS Code Marketplace oficial ou do Open VSX, o registro aberto de extensões usado por muitos editores derivados do VS Code, a Anthropic diz que você não está afetado. Se você nunca usa a extensão dentro do Cursor, este incidente não se aplica a você.
Phorion indica que as pastas de extensão que você deve procurar são anthropic.claude-code-2.1.312-darwin-arm64 e anthropic.claude-code-2.1.313-darwin-arm64, dentro do diretório de extensões da sua IDE. Se existir uma pasta com qualquer um desses nomes, a versão maliciosa foi instalada em algum momento.
Como saber se tenho o backdoor no meu computador?
Procure pela chave SSH do atacante. O payload adiciona uma chave pública com o comentário svc-telemetry ao seu arquivo authorized_keys. Esta é a verificação de uma linha que o Cursor publica:
macOS:
grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "svc-telemetry key found" || echo "No key found; machine not impacted"
Windows (PowerShell):
$files = "$HOME\.ssh\authorized_keys", "C:\ProgramData\ssh\administrators_authorized_keys" | Where-Object { Test-Path $_ }
if ($files -and (Select-String svc-telemetry $files)) { "svc-telemetry key found" } else { "No key found; machine not impacted" }
“No key found” é a resposta que você quer ver. Se a chave aparecer, continue lendo.
O que esse backdoor faz?
O atacante inseriu uma função no início do extension.js minificado da extensão. Ela é executada assim que a IDE carrega o arquivo, antes da extensão ser ativada, então você não precisa clicar em nada. De acordo com a análise de Phorion:
- Planta uma chave de acesso. Adiciona a chave Ed25519
svc-telemetrya~/.ssh/authorized_keyse cria o diretório e o arquivo se não existirem. - Tenta ativar SSH. No macOS verifica Remote Login; no Windows tenta instalar o OpenSSH Server. Sem permissões de administrador, ambas as tentativas costumam falhar: Phorion encontrou um bug na verificação do macOS e um caminho de shell incorreto na etapa do Windows. Ainda assim, a chave e a persistência são gravadas. Phorion avisa que se você ativar Remote Login mais tarde, o backdoor fica pronto para ser usado.
- Abre um túnel SSH reverso. Se conecta a
134.209.82.225pela porta 22 com uma chave privada incorporada (svc-telemetry-tun) e reencaminha uma porta de volta para o daemon SSH do seu computador. Um loop de tentativas mantém o túnel ativo mesmo se você fechar a IDE. - Envia um beacon de reconhecimento. Um único POST para a porta 8099 com seu hostname, usuário, sistema operacional, diretório home, email global do Git, IP público e os nomes (não os valores) de até 40 variáveis de ambiente que contenham
KEY,TOKEN,SECRET,PASS,AWSouGCP. - Fica persistente. No macOS instala um LaunchAgent de usuário com um nome que imita um serviço Apple. No Windows cria uma tarefa agendada, com um script na pasta Iniciar como backup.
Cursor informa que trabalhou com o provedor de hospedagem para desativar o servidor do atacante e que ele não funciona mais. Isso fecha a porta por enquanto, mas não remove a chave nem a persistência do seu computador.
Por que desinstalar a extensão não elimina o backdoor?
Nada do payload vive dentro da pasta da extensão. A chave está em ~/.ssh, os scripts de persistência em ~/.config e o LaunchAgent ou a tarefa agendada em locais do sistema. Ao remover a extensão, extension.js é excluído, mas a chave, os scripts e o loop do túnel permanecem onde o payload os deixou.
O que procurar (de acordo com a lista de IOC do Cursor):
| Plataforma | Artefatos |
|---|---|
| macOS | Linha svc-telemetry em ~/.ssh/authorized_keys · ~/.config/.smt · ~/.config/.smtk · $TMPDIR/.stk_<10 hex> · ~/Library/LaunchAgents/com.apple.sysmond.plist (label com.apple.sysmond) |
| Windows | Linha svc-telemetry em %USERPROFILE%\.ssh\authorized_keys · %USERPROFILE%\.config\smt.cmd · %USERPROFILE%\.config\smtk · %TEMP%\.stk_<10 hex> · tarefa agendada SysMon · %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\sysmon.cmd |
Processos que delatam o túnel: ssh -N -R '*:0:localhost:22' ou autossh -M 0.
O payload também traz código para Linux (uma entrada @reboot no crontab, /tmp/.stk_*), mas o Cursor lista apenas os builds de macOS e Windows como afetados.
Como eliminar o backdoor?
Use os scripts de remediação do Cursor. Leia-os antes de executá-los: é uma boa prática com qualquer coisa que venha de um incidente de segurança.
- macOS:
https://cursor.com/static/security/claude-code-extension/remediate-macos.sh, execute-o com seu usuário normal, não como root:bash remediate-macos.sh - Windows:
https://cursor.com/static/security/claude-code-extension/remediate-windows.ps1, execute-o em um PowerShell com privilégios elevados:powershell -ExecutionPolicy Bypass -File .\remediate-windows.ps1
Cursor indica que ambos os scripts terminam com um código de saída diferente de zero se algo permanecer pendente. Mesmo assim, execute novamente o comando de verificação ao final.
Se você preferir limpar manualmente, a ordem que Phorion propõe é:
- Interrompa o túnel: o loop de tentativas em shell e qualquer processo
sshouautosshque se conecte a134.209.82.225. - Elimine a persistência: o LaunchAgent (macOS) ou a tarefa
SysMone o script de Iniciar (Windows), além dos arquivos.smte.smtk. - Apague a linha
svc-telemetrydeauthorized_keys, delete o arquivo temporário.stk_*e confirme que SSH ou Remote Login não ficaram ativados.
O guia do Cursor vai além: isole qualquer computador que mostre que o payload foi executado e considere reinstalá-lo do zero, porque desinstalar a extensão pode não ser suficiente.
Que credenciais devo rotacionar?
O beacon enviou ao atacante os nomes de suas variáveis de ambiente, não seus valores. Mas se SSH estava acessível no seu computador, ou você encontrar qualquer sinal de um login entrante, assuma que tudo o que aquela conta de usuário podia ler está exposto. Rotacione chaves de API, credenciais de nuvem (AWS, GCP), tokens do Git e tokens de sessão, começando pelos que correspondem ao filtro do beacon. Faça isso de outro computador confiável, como o Cursor recomenda.
De acordo com Phorion, um login entrante através do túnel apareceria como proveniente de localhost (127.0.0.1 ou ::1) usando a chave svc-telemetry. Verifique seus logs SSH em busca dessas entradas.
O que realmente garantia o “Made by Anthropic”?
Nota de Grego
Pelo que foi divulgado até agora, nada falhou no pipeline de build da Anthropic. A falha foi no marketplace, onde o nome “Anthropic” junto a uma extensão era um rótulo, não uma assinatura. As extensões ao estilo VS Code não exigem assinatura criptográfica do publisher, e o marketplace do Cursor é um proxy montado sobre o Open VSX com suas próprias publicações agregadas. Ali, o nome do publisher diz quem afirma ter enviado algo, não quem o construiu.
Para um CTO a conclusão é concreta: uma extensão de programação com IA é executada com todas as permissões do usuário do desenvolvedor, incluindo seu diretório SSH, seus tokens e sua identidade do Git, e se atualiza sozinha. Trate as fontes de extensões como você já trata os registros de pacotes. Fixe versões e use listas de publishers permitidos onde a IDE permitir, e monitore os processos auxiliares da IDE que escrevem em ~/.ssh: é exatamente o comportamento que Phorion detecta.
E você? Como você verifica quem publicou uma extensão antes de instalá-la na sua IDE?
- Do VS Code Marketplace oficial
- Do marketplace do Cursor
- Do Open VSX
- Prefiro outra opção (nos diga qual)
Comente abaixo ou, se este artigo chegou até você por email, responda diretamente ao email: sua resposta é publicada aqui.
Relacionado: GlassWorm Está em Seus Repos de Python Agora — O Que É, Como Funciona, O Que Fazer