Backdoor na extensão Claude Code no Cursor: verificação e limpeza
Identifique a exposição à extensão Claude Code modificada distribuída pelo marketplace do Cursor. Confira as versões e o período de instalação, procure indicadores de SSH e persistência e execute os scripts oficiais com os privilégios corretos. Verifique os limites da limpeza, revogue credenciais acessíveis e reinstale a extensão de uma fonte verificada.
Conteúdo

Se você instalou a extensão Claude Code 2.1.312 ou 2.1.313 pelo Cursor no período afetado, verifique o computador antes de retomar o trabalho. Isole computadores com indicadores maliciosos, remova os vestígios do backdoor e use um dispositivo confiável para revogar e substituir as credenciais acessíveis. Atualizar apenas a extensão não remove seus mecanismos de persistência.
Minha instalação foi afetada? Confira origem, versão, plataforma e horário
Investigue se sua instalação corresponde às condições abaixo ou se encontrar algum indicador, independentemente do horário da instalação. Em 2026-11-02, o aviso de segurança do Cursor informa este escopo:
| O que verificar | Escopo informado |
|---|---|
| Extensão | Anthropic.claude-code, distribuída pelo Cursor VS Code Extension Marketplace |
| Versões | Cópias modificadas de 2.1.312 e 2.1.313 |
| Plataformas | macOS e Windows |
| Período de instalação ou atualização | Aproximadamente 02:27–13:35 PDT em 2026-10-29 |
| Mesmo período em UTC | Aproximadamente 09:27–20:35 UTC em 2026-10-29 |
O Cursor informa que esses pacotes modificados não foram desenvolvidos pela Anthropic. Inclua as atualizações automáticas na análise. A versão instalada agora pode ser diferente daquela presente durante o incidente.
Não abra uma instalação suspeita do Cursor. Consulte registros de instalação ou inspecione os metadados da extensão no disco, incluindo package.json, sem carregar a extensão. Registre a versão, a plataforma, a origem e o horário da instalação.
Não use claude --version para verificar a extensão. A documentação da Anthropic explica que a extensão inclui sua própria CLI; o terminal pode executar uma instalação separada.
A análise independente da Microsoft confirma que as distribuições do Microsoft Visual Studio Marketplace e do npm não foram afetadas por este incidente. O número da versão, por si só, não distingue um pacote autêntico de uma cópia modificada.
O Linux exige uma avaliação separada. A análise da Phorion identifica trechos de código para Linux, mas o escopo de distribuição confirmado pelo Cursor cita macOS e Windows. Investigue vestígios correspondentes no Linux. Não considere a distribuição no Linux confirmada nem execute nele um script de limpeza para macOS.
Execute as verificações oficiais da chave SSH
Execute a verificação para a conta afetada e interprete o resultado junto com as evidências de instalação e persistência. A mensagem que indica um resultado positivo é svc-telemetry key found.
Estes são os comandos publicados pelo Cursor. A mensagem negativa não prova que o computador nunca foi afetado.
macOS: Bash
Execute o comando em um terminal, como o usuário afetado:
grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "svc-telemetry key found" || echo "No key found; machine not impacted"
O comando procura um comentário em um arquivo. A opção -s também oculta mensagens sobre arquivos ausentes e erros de leitura. Investigue um arquivo que não possa ser lido, em vez de interpretar a mensagem negativa como confirmação de segurança.
Windows: PowerShell
Execute a verificação do Cursor para o perfil do usuário afetado:
$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" }
Resolva erros de acesso ao verificar o arquivo compartilhado dos administradores. Se elevar os privilégios com outra conta, $HOME muda. Verifique também o perfil originalmente afetado.
Um marcador positivo exige contenção e verificação da chave. O Cursor publica esta impressão digital da chave de autorização do invasor:
SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk
No macOS, este comando do OpenSSH para consultar impressões digitais pode ajudar a comparar as entradas sem alterar o arquivo:
ssh-keygen -lf "$HOME/.ssh/authorized_keys" -E sha256
Compare o conteúdo da chave com o aviso se o comando não conseguir interpretar o arquivo ou se os comentários forem diferentes. Os scripts de limpeza consideram a possibilidade de a chave maliciosa ter sido acrescentada a uma linha existente. Não apague uma linha correspondente inteira sem examiná-la: ela também pode conter uma chave legítima.
Verifique a persistência e preserve as evidências
Verifique os arquivos e as ações de inicialização abaixo antes de considerar o computador limpo. São indicadores para investigar, não nomes que devam ser excluídos indiscriminadamente.
| Área | Indicadores do aviso do Cursor |
|---|---|
| Arquivos no macOS | ~/.config/.smt, ~/.config/.smtk, ~/Library/LaunchAgents/com.apple.sysmond.plist |
| Inicialização no macOS | LaunchAgent com o rótulo com.apple.sysmond |
| Arquivos no Windows | %USERPROFILE%\.config\smt.cmd, %USERPROFILE%\.config\smtk |
| Inicialização no Windows | Tarefa agendada SysMon; alternativa: %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\sysmon.cmd |
| Arquivos temporários | $TMPDIR/.stk_<10 hex> no macOS; %TEMP%\.stk_<10 hex> no Windows |
| Rede | Conexões com 134[.]209[.]82[.]225, incluindo SSH pela porta TCP 22 e HTTP /beacon na porta 8099 |
O sufixo <10 hex> representa um padrão de nome de arquivo; os sinais de menor e maior não fazem parte literal do nome. Antes de remover um item de inicialização, examine a ação configurada e os arquivos associados.
Nos computadores da equipe, preserve o pacote da extensão, os arquivos de chaves relevantes, as configurações de inicialização e os logs do computador. Siga o processo de resposta a incidentes da equipe. Isole computadores com evidências de execução do código malicioso ou instalação do backdoor. Fechar o editor não remove os scripts que continuam executando separadamente.
A Phorion constatou que o código injetado é executado quando o Node carrega o módulo, antes do callback normal activate da extensão. Não é necessário enviar um prompt ao Claude para que esse código seja executado.
O Cursor informa que o servidor do invasor foi retirado do ar. Isso interrompe o canal de conexão descrito, mas não remove os vestígios locais. Da mesma forma, uma falha ao habilitar SSH não descarta a adição da chave, os arquivos de persistência ou a coleta de informações do computador.
Execute o script de limpeza do Cursor e verifique seus limites
Use o script indicado no aviso do Cursor depois de preservar as evidências necessárias. Examine o arquivo baixado antes de executá-lo e feche os editores.
A limpeza abrange diretórios modificados da extensão, processos do túnel, arquivos criados pelo malware, mecanismos de persistência e a chave de autorização do invasor. Revogue as credenciais de API separadamente e investigue a atividade do computador além dos resultados da limpeza.
Limpeza no macOS
Baixe o script de correção do Cursor para macOS. Execute-o na pasta onde foi salvo, como cada usuário afetado, sem sudo:
bash remediate-macos.sh
echo "Exit status: $?"
O script recusa a execução como root. A limpeza inclui o LaunchAgent com.apple.sysmond, os processos e arquivos correspondentes e os pacotes de extensão que contêm svc-telemetry. A chave do invasor é removida por correspondência exata de texto.
Limpeza no Windows
Baixe o script de correção do Cursor para Windows. Abra o PowerShell com Run as Administrator (Executar como administrador) e execute o comando na pasta onde salvou o arquivo:
powershell -ExecutionPolicy Bypass -File .\remediate-windows.ps1
$LASTEXITCODE
O script percorre os perfis de usuário registrados. Ele atua sobre a ação maliciosa da tarefa, os processos correspondentes, os diretórios da extensão, os arquivos criados e as chaves de autorização dos perfis.
Após a limpeza, verifique separadamente C:\ProgramData\ssh\administrators_authorized_keys, se esse arquivo existir. Se a chave do invasor estiver presente, peça a um administrador que remova a entrada não autorizada exata, preservando as chaves legítimas.
Um código de saída diferente de zero ou uma mensagem incomplete exige acompanhamento. Resolva as falhas relatadas e repita a verificação correspondente.
O código 0 indica que o script não relatou nenhuma condição pendente nas verificações que executa. Confira locais personalizados de instalação de extensões usando os indicadores publicados. Revise separadamente a configuração do serviço SSH local e confirme se ela corresponde à configuração desejada.
Mantenha o computador isolado se os vestígios retornarem, surgir acesso SSH inesperado ou você não conseguir explicar atividades posteriores. Peça à equipe de resposta a incidentes que avalie a reinstalação do sistema antes de devolver credenciais ao computador.
Revogue e substitua as credenciais acessíveis no computador afetado
Revogue as credenciais expostas usando um dispositivo confiável, inclusive aquelas sem relação com o Claude Code. Não coloque as substitutas no computador afetado antes de concluir a limpeza ou a reinstalação.
O Cursor descreve a coleta dos nomes das variáveis de ambiente. Isso não comprova o roubo de seus valores. A recomendação de substituição também considera um possível acesso posterior pelo backdoor.
Use este inventário para atribuir responsáveis e registrar a conclusão:
| Credencial | Ação necessária |
|---|---|
| Chaves de API da Anthropic | Na página de chaves de API do Claude Console, abra o menu da chave afetada, escolha Delete API key e crie uma substituta. |
| Chaves de API da OpenAI | Exclua as chaves afetadas no painel de chaves de API, crie substitutas e examine o uso em busca de atividade inesperada. |
| Tokens de serviços Git | No serviço emissor, revogue os tokens de acesso pessoal e outras credenciais acessíveis no computador. Atualize as automações legítimas com as substitutas. |
| Chaves SSH do cliente | Substitua chaves privadas potencialmente expostas e remova as autorizações de suas antigas chaves públicas dos serviços Git e de outros servidores. |
| Credenciais de nuvem | Revogue chaves de acesso expostas e trate as sessões temporárias separadamente. Investigue recursos não autorizados, mudanças de acesso e uso. |
| Sessões de contas | Revogue as sessões afetadas do navegador, da CLI e de SSO pelo serviço correspondente ou com o administrador de identidades. |
As instruções da Anthropic para chaves comprometidas documentam os controles de exclusão e substituição. As orientações de segurança da OpenAI explicam a exclusão de chaves de API e a análise de uso.
No GitHub, use as configurações de tokens de acesso pessoal para excluir os tokens afetados. Examine separadamente as chaves SSH e as sessões ativas.
Para a AWS, siga as instruções para responder à exposição de chaves de acesso. Use as orientações específicas sobre credenciais temporárias para sessões de funções.
Inclua as chaves de gateways no mesmo inventário. Se você usou o BetterToken, inclua sua chave de API do BetterToken. O console permite criar chaves; criar uma substituta não revoga a credencial exposta. Confirme a revogação no serviço emissor antes de considerar a troca concluída.
Remover svc-telemetry do computador não revoga suas próprias chaves privadas SSH nos serviços remotos. Excluir um valor da configuração local também não invalida a chave de API original.
Para uma recuperação mais ampla, use o checklist de revogação de credenciais e auditoria. Confirme a revogação no serviço emissor, atualize os sistemas legítimos que usam as credenciais e verifique se as solicitações esperadas funcionam em um ambiente confiável.
Reinstale de uma fonte verificada após a recuperação
Após a limpeza, ou em um computador reinstalado, instale uma versão atual de origem confiável. No comunicado sobre o incidente, o Cursor pediu que os clientes atualizassem para 2.1.314. Essa é a versão indicada naquele comunicado.
Use a página de instalação da Anthropic para acessar a listagem correta da extensão. Confirme o publicador, o identificador Anthropic.claude-code, o registro de origem e a versão instalada. O painel Extensions mostra a versão da extensão após a instalação.
Verifique novamente os indicadores publicados depois de fazer login ou reiniciar. Se a persistência retornar, pare de usar o computador e reabra a investigação.
A instalação para uso apenas no terminal é um pacote separado. O guia de instalação e primeiro uso do Claude Code ajuda a verificar essa instalação, mas não limpa um computador já afetado.
Verifique a origem das extensões antes da próxima instalação
Confira o link de instalação fornecido pelo desenvolvedor e o registro usado, mesmo que o nome da extensão seja familiar. Registre o publicador, o identificador, a versão, a plataforma e a origem do download dos pacotes aprovados.
A documentação de extensões do Cursor alerta que nomes publisher.extension idênticos podem representar publicadores ou códigos diferentes em registros distintos.
Ao comparar hashes, use o mesmo artefato, a mesma plataforma e a mesma versão. O hash de um pacote VSIX não pode ser comparado com o de extension.js. Uma divergência em relação a um hash malicioso conhecido não comprova a autenticidade do pacote.
Em 2026-11-02, o Cursor documenta Marketplace Install Cooldown (hours) para proprietários e administradores de equipes. Equipes Enterprise também podem exigir assinaturas válidas de extensões do Open VSX antes da instalação.
Aplique esses controles junto com uma revisão das instruções dos agentes e das configurações baixadas. A auditoria de AGENTS.md e da configuração do Claude Code trata dessa outra fonte de instruções executáveis.