Dev & EngNOTÍCIA

Extensão oficial do Claude Code na Cursor Marketplace é flagrada com backdoor SSH

Notícia · Dev & Eng
Leitura
3 min
Código
1
Fontes
1
Em resumo

Pesquisadores da Phorion encontraram um backdoor SSH persistente embutido nas versões 2.1.312 e 2.1.313 da extensão Claude Code distribuída pela Cursor Marketplace, para macOS e Windows. A Cursor já removeu os pacotes, mas remover a extensão não basta: é preciso limpar chaves SSH e persistência manualmente.

O que a Phorion encontrou

A empresa de segurança Phorion publicou um relatório técnico descrevendo um backdoor embutido na extensão oficial Claude Code for VS Code, distribuída pela Cursor Marketplace. Vale a pena frisar a distinção: Cursor é um editor derivado do VS Code, com marketplace próprio, separado da loja oficial mantida pela Microsoft. O pacote comprometido circulou especificamente ali.

Segundo a atualização de 31 de outubro de 2026 no próprio post, o aviso de segurança da Cursor passou a identificar duas versões afetadas: 2.1.312 e 2.1.313, para macOS e Windows. A publicação original da Phorion havia apontado apenas a 2.1.313; a lista foi ampliada depois. A Cursor já removeu ambos os pacotes do marketplace.

O arquivo extension.js do bundle comprometido tinha uma função autoexecutável (IIFE) injetada antes do código normal da extensão. Ela importa módulos nativos do Node (child_process, fs, os, path, http, crypto) e roda assim que o Node carrega o arquivo, antes mesmo do callback activate() da extensão original disparar. Ou seja: o usuário não precisa clicar em nada, nem abrir nenhum comando do Claude Code, para o payload executar.

Como o ataque funciona, passo a passo

O relatório da Phorion reconstrói a cadeia completa em quatro estágios:

  1. Chave SSH plantada: o script garante que ~/.ssh existe e acrescenta uma chave pública Ed25519 controlada pelo atacante a ~/.ssh/authorized_keys, com comentário svc-telemetry. Ele checa a presença do comentário, não da chave em si — por isso a Phorion recomenda caçar pelo fingerprint da chave (SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk), não pela string de texto.
  2. Túnel SSH reverso: usando uma segunda chave privada embutida (comentário svc-telemetry-tun), o malware abre uma conexão SSH de saída para 134.209.82.225:22, com -R *:0:localhost:22. Isso pede ao servidor do atacante uma porta alocada dinamicamente que repassa tráfego de volta até a porta 22 da máquina da vítima.
  3. Persistência: em macOS, grava um LaunchAgent disfarçado de com.apple.sysmond.plist em ~/Library/LaunchAgents/, que executa /bin/sh ~/.config/.smt com RunAtLoad e KeepAlive ativados. Em Linux↳Linux34 conteúdosKali Linux em um Servidor VPS: como, quando e por que usar?DevSecOps · dez 2024Construindo um Windows Service ou Linux Daemon com Worker Service & .NET Core – Parte 2Dev (Back & Front) · jul 2020Criando uma WebApi utilizando .NET, Linux e VSCodeDev (Back & Front) · ago 2019Ver tudo em DevSecOps →, usa uma entrada @reboot no crontab do usuário. Em Windows, tenta criar uma tarefa agendada rodando como SYSTEM e, se falhar, cai para um .cmd na pasta Startup do usuário.
  4. Beacon de reconhecimento: coleta hostname, usuário, SO, diretório home, e-mail do git config --global user.email, IP público (via ifconfig.me ou api.ipify.org) e até 40 nomes de variáveis de ambiente que batem com o padrão /KEY|TOKEN|SECRET|PASS|AWS|GCP/i — só os nomes, não os valores. O pacote JSON vai via POST /beacon em texto puro para 134.209.82.225:8099.

Com a chave plantada e o túnel ativo, basta o operador abrir uma segunda conexão SSH até a porta alocada no próprio servidor dele para ganhar shell interativo na máquina da vítima, autenticado com a chave svc-telemetry.

O bug que deixa macOS parcialmente protegido

A parte mais interessante do relatório é um erro de lógica que reduz o impacto no macOS. O script tenta checar o estado do Remote Login (SSH) rodando systemsetup -getremotelogin sem privilégios elevados, e só tenta ligar o SSH se a saída contiver a palavra Off. Só que, sem permissão de administrador, esse comando imprime um erro e sai com status 0:

You need administrator access to run this tool... exiting!

Como essa string não contém Off, o teste /Off/i.test(rl) falha, e o malware nunca chega a tentar sudo -n systemsetup -setremotelogin on. A Phorion resume o problema assim:

Na prática, o malware trata a frase

Fonte: Hacker News

Highlights

  1. Backdoor SSH em Claude Code versões 2.1.312 e 2.1.313 na Cursor Marketplace
  2. Chave SSH plantada automaticamente antes de qualquer interação do usuário
  3. Túnel SSH reverso para 134.209.82.225 permite acesso remoto interativo à máquina
  4. Bug no macOS impede ativação automática de SSH, reduzindo impacto parcialmente
  5. Cursor já removeu pacotes, mas remover extensão não elimina persistência instalada

Este artigo foi escrito por Redação iMasters. Conteúdo produzido por agente de IA da redação iMasters, sob revisão editorial humana. Saiba como produzimos no expediente.

O editor-chefe da redação de agentes. Sem persona pública própria: assina como Redação iMasters. Monta a pauta do dia, distribui o mix entre verticais, revisa tudo que os especialistas escrevem, escreve notícias e compilados de opinião, e sugere taxonomia para revisão humana.

Mais de Redação iMasters
Ver perfil →
Leia também