Extensão do Claude Code no Cursor com backdoor (2.1.312 e 2.1.313): como checar e limpar
Voltar para o Blog
Artigoclaude codesegurançatroubleshootingagente de programaçãodev tools

Extensão do Claude Code no Cursor com backdoor (2.1.312 e 2.1.313): como checar e limpar

Mafra31 de outubro de 20268 min de leitura

Se você instalou ou atualizou a extensão do Claude Code dentro do Cursor em 29 de outubro de 2026, rode dois comandos antes de qualquer outra coisa: um procura a chave SSH svc-telemetry no seu authorized_keys, o outro procura o arquivo de persistência que o código malicioso deixou. Achou algo, rode o script oficial de limpeza da Cursor e gire suas credenciais a partir de outra máquina. Desinstalar a extensão não basta.

Abaixo estão os comandos exatos para macOS, Windows e Linux, tirados do aviso de segurança da Cursor e dos próprios scripts de limpeza que ela publicou.

O que aconteceu com a extensão do Claude Code no Cursor?

O marketplace de extensões da Cursor distribuiu builds adulterados da extensão Anthropic.claude-code nas versões 2.1.312 e 2.1.313, para macOS e Windows, durante cerca de 11 horas. Segundo o aviso de segurança da Cursor (publicado em 29/10 e atualizado em 30/10/2026), essas versões "não foram desenvolvidas pela Anthropic".

PontoO que se sabeFonte
Versões adulteradas2.1.312 e 2.1.313 (darwin-arm64 e win32-x64)Cursor, atualização de 30/10
Janela29/10/2026, das 02:27 às 13:35 no horário do Pacífico (06:27 às 17:35 em Brasília)Cursor
Quem pode ter recebidoaté 5.000 usuáriosBleepingComputer e OX Security, citando a Cursor
Canal afetadosó o marketplace da Cursor. A Cursor diz não ter evidência de que outras versões ou a distribuição oficial tenham sido afetadasCursor
Servidor do atacantefora do ar, derrubado junto com o provedor de nuvemCursor
Versão anterior a 2.1.312não aparece em nenhuma lista de afetadasCursor, OX, Phorion

Se você usa o Claude Code só pelo terminal, ou instalou a extensão pelo marketplace da Microsoft no VS Code, nada nas fontes acima indica exposição.

Fluxograma: confira a versão da extensão, procure a chave svc-telemetry, rode o script oficial da Cursor; se achou algo, gire as credenciais a partir de outra máquina
O caminho completo em 3 passos, mais a rotação de credenciais se a máquina estiver comprometida.

O que o código malicioso fazia na máquina?

Ele mandava dados da máquina para o atacante e tentava abrir uma porta de entrada por SSH. Pela descrição da Cursor, em quatro etapas:

  1. Coleta: hostname, usuário, sistema, arquitetura, pasta home, nomes de variáveis de ambiente, pastas de trabalho, e-mail do Git e IP público.
  2. Chave do atacante: acrescentava uma chave ssh-ed25519 com o comentário svc-telemetry ao ~/.ssh/authorized_keys.
  3. Túnel reverso: tentava ligar o SSH local e abrir um túnel ssh -N -R até o servidor do atacante. A Cursor diz que, por erros no próprio código malicioso, esse passo falhava a menos que o Cursor estivesse rodando com privilégio de administrador.
  4. Persistência: LaunchAgent no macOS, tarefa agendada (com script de Inicialização como plano B) no Windows, e scripts que tentavam refazer o túnel a cada 60 segundos, mais ou menos.

A Phorion, que analisou o código, registrou que o filtro de variáveis de ambiente era /KEY|TOKEN|SECRET|PASS|AWS|GCP/i e que só os nomes saíam, não os valores. Isso ajuda a decidir o que girar primeiro, como você vai ver abaixo.

Como saber se a minha máquina foi afetada?

Procure a chave e os arquivos de persistência. Não confie no número de versão: o script oficial da Cursor avisa que o pacote adulterado "mantém o número de versão real", então ele detecta pelo conteúdo do extension.js, e você deve fazer o mesmo.

macOS e Linux

# 1. Extensão adulterada instalada? (procura o marcador dentro do código)
grep -l svc-telemetry ~/.[!.]*/extensions/anthropic.claude-code-*/extension.js 2>/dev/null

# 2. Chave do atacante, pelo comentário e pela impressão digital
grep -c svc-telemetry ~/.ssh/authorized_keys
ssh-keygen -lf ~/.ssh/authorized_keys | grep 0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk

# 3. Persistência
ls -la ~/.config/.smt ~/.config/.smtk ~/Library/LaunchAgents/com.apple.sysmond.plist 2>/dev/null
ls -a "${TMPDIR:-/tmp}" /tmp | grep '^\.stk_'
crontab -l 2>/dev/null | grep '\.config/\.smt'

Por que a impressão digital além do comentário: a Phorion lembra que o comentário pode ser editado, a chave não. O SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk é o que a Cursor e a OX Security publicaram para a chave plantada.

Linux não está na lista de builds afetados da Cursor, mas o código tem rotina para ele (entrada @reboot no crontab apontando para ~/.config/.smt), e a Cursor lista esses caminhos nos indicadores. A última linha cobre esse caso.

Windows (PowerShell)

# 1. Extensão adulterada instalada?
Get-ChildItem "$HOME\.*\extensions\anthropic.claude-code-*\extension.js" -Force -ErrorAction SilentlyContinue |
    Select-String svc-telemetry -SimpleMatch -List

# 2. Chave do atacante (comando publicado pela Cursor)
$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" }

# 3. Persistência
schtasks /query /tn SysMon
Test-Path "$HOME\.config\smt.cmd", "$HOME\.config\smtk", "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\sysmon.cmd"

Se o schtasks responder que não encontrou a tarefa e os três Test-Path voltarem False, a persistência não está lá.

Como limpar se achei a chave ou os arquivos?

Rode o script oficial da Cursor. Ele desliga a persistência, mata os processos do túnel, apaga a extensão adulterada, remove os arquivos e tira a chave do authorized_keys. Sai com código 1 se sobrar alguma coisa.

# macOS: rode como o usuário afetado, SEM sudo (o script recusa root)
curl -fsSLO https://cursor.com/static/security/claude-code-extension/remediate-macos.sh
less remediate-macos.sh
bash remediate-macos.sh
# Windows: feche todos os editores e abra o PowerShell com "Executar como administrador"
Invoke-WebRequest https://cursor.com/static/security/claude-code-extension/remediate-windows.ps1 -OutFile remediate-windows.ps1
powershell -ExecutionPolicy Bypass -File .\remediate-windows.ps1

O resultado esperado é clean: no backdoor found (não havia nada) ou done: backdoor removed. Se aparecer incomplete, leia os avisos acima dessa linha e rode de novo depois de fechar os editores. O script de Windows limpa todos os perfis de usuário da máquina; o de macOS precisa rodar uma vez em cada usuário afetado.

Não apague a linha com sed '/svc-telemetry/d'. Os dois scripts da Cursor explicam por quê: a chave do atacante foi acrescentada "sem quebra de linha antes", então ela pode estar colada na mesma linha de uma chave sua legítima. Apagar a linha inteira tira o seu acesso junto. O script remove só o trecho exato da chave.

No macOS, se o script disser que algo escuta em localhost:22 e você não usa SSH de entrada nessa máquina, desligue o Login Remoto: sudo systemsetup -setremotelogin off.

No Linux, sem script oficial, remova à mão a entrada do crontab e os arquivos, e confira se seus outros jobs continuam lá (a Phorion apontou um bug no código malicioso que pode apagar cron jobs existentes):

crontab -l | grep -v '\.config/\.smt' | crontab -
rm -f ~/.config/.smt ~/.config/.smtk /tmp/.stk_*
crontab -l

Desinstalar a extensão do Cursor resolve?

Não. A Cursor escreve que desinstalar "pode não ser suficiente", porque os scripts de persistência rodam sozinhos, fora do editor. Atualizar a extensão também não remove a chave nem o LaunchAgent. Você precisa da limpeza da seção anterior.

Quais credenciais girar primeiro?

Todas as que a máquina afetada alcançava, e a partir de outra máquina. A recomendação literal da Cursor é girar "credenciais e sessões acessíveis a partir dos hosts afetados, a partir de um sistema confiável", porque a coleta só de nomes "não descarta acesso posterior a credenciais pelo backdoor".

Para priorizar, veja quais nomes o filtro do código malicioso teria pego no seu ambiente:

env | cut -d= -f1 | grep -iE 'KEY|TOKEN|SECRET|PASS|AWS|GCP'
O que girarPor quê
Tudo que apareceu no comando acimaNome enviado ao atacante, valor ao alcance pelo túnel
Chaves SSH em ~/.sshO túnel dava acesso ao disco
Token do GitHub (gh, Git Credential Manager) e npmMesmo motivo, e o e-mail do Git foi enviado
Credenciais de nuvem (AWS, GCP, Azure)Ficam em arquivos na home, não só em variável
Sessões de navegador de contas críticasA Cursor fala em "credenciais e sessões"

Se o túnel chegou a abrir (chave achada e SSH local ligado), a Cursor recomenda isolar a máquina e avaliar reinstalar o sistema.

Perguntas rápidas

Uso o Claude Code só no terminal. Preciso fazer algo?

Pelas fontes atuais, não. O incidente foi no marketplace de extensões da Cursor. Rodar o comando de grep da chave leva um segundo e tira a dúvida.

Minha extensão está numa versão mais nova que 2.1.313. Estou seguro?

A extensão nova não carrega o código malicioso, mas se a 2.1.312 ou 2.1.313 chegou a rodar, a chave e a persistência ficaram. Faça a checagem mesmo assim.

O servidor do atacante caiu. Ainda preciso limpar?

Sim. A chave continua autorizada no seu authorized_keys e o script de persistência continua tentando abrir o túnel. Servidor fora do ar hoje não impede outro amanhã.

Se você quer um agente de programação de reserva no terminal enquanto revisa as extensões do editor, a Verboo Code roda como CLI, com tokens ilimitados.

Gostou deste artigo?
Compartilhe conhecimento com sua rede.
// Leia também

Artigos relacionados