Backdoor SSH no Claude Code do Cursor e CNHs da Uber: a chave vazada da Fireworks vira o elo da cadeia de IA
Backdoor SSH no Claude Code do Cursor e CNHs da Uber: a chave vazada da Fireworks vira o elo da cadeia de IA
As últimas 72 horas entregaram um daqueles dias em que a cibersegurança mostra a costura por dentro. De um lado, a Cursor encerrou uma investigação de duas semanas e revelou a origem do incidente que, em 29 de outubro, colocou uma cópia adulterada da extensão Claude Code no seu marketplace: uma chave de acesso que a empresa havia emitido para a Fireworks AI vazou, e o atacante usou o que encontrou nos rastros dos agentes de código para chegar até a infraestrutura de distribuição. Do outro, a Uber confirmou que dados de carteira de motorista de milhares de motoristas norte-americanos foram acessados por meio de credenciais comprometidas em um provedor terceirizado — e a imprensa aponta o mesmo fornecedor de inferência.
Na mesma janela, a Europol anunciou a fase mais recente da Operação Endgame, com a apreensão de 235 servidores e 257 domínios ligados ao Gootloader, ao CastleRAT e ao StealC, além da recuperação de cerca de 6,4 milhões de conjuntos de credenciais roubadas de mais de 40 mil vítimas. E, no Brasil, o noticiário seguiu dominado pelos desdobramentos dos ataques a órgãos públicos e estatais. O fio condutor do dia é desconfortavelmente simples: identidade de máquina virou o ativo mais valioso — e o menos vigiado.
Cursor: 11 horas de extensão trojanizada e um backdoor que ninguém aprovou
A cronologia do incidente importa mais do que o susto. O marketplace de extensões do Cursor serviu versões adulteradas do pacote anthropic.claude-code — numeradas 2.1.312 e 2.1.313 — entre 02h27 e 13h35 no horário do Pacífico, algo como 11 horas. A descoberta partiu de pesquisadores externos ligados ao monitoramento de malware em repositórios abertos, e não de um controle interno.
O que o código malicioso tentava fazer é o tipo de coisa que transforma um editor de código em uma porta de entrada permanente:
Adicionar uma chave SSH controlada pelo atacante ao arquivo de chaves autorizadas do usuário, tanto em macOS quanto em Windows, concedendo login sem senha;
Habilitar o serviço de SSH local , quando ele estava desligado, para que a chave tivesse onde autenticar;
Estabelecer um túnel reverso para um servidor do atacante, contornando NAT e firewalls de saída que bloqueiam conexões de entrada.
O alcance estimado é de até 5.000 usuários que solicitaram especificamente aquelas versões em cache. O ponto que muita gente não percebeu: o mecanismo de exploração não dependia de o desenvolvedor clicar em "atualizar". Editores modernos atualizam extensões em segundo plano, e o padrão é aceitar a versão mais nova sem aprovação humana. Uma janela de 11 horas é tempo mais que suficiente para uma frota de engenharia inteira reiniciar o editor.
De onde veio o acesso
A Cursor atribuiu o encadeamento a uma chave de acesso que ela emitiu para a Fireworks AI e que foi vazada do lado do fornecedor. Com essa credencial, o atacante:
copiou dados limitados de rastreamento de agentes de codificação , incluindo trechos históricos que continham segredos colados por conveniência em sessões de agente;
alcançou ferramentas SaaS selecionadas , código-fonte arquivado e dados de suporte;
usou o que obteve para inserir a versão maliciosa no cache do marketplace.
Os números divulgados pela empresa colocam o incidente em perspectiva: menos de 0,01% das credenciais de API de clientes expostas e menos de 0,05% dos usuários com logs de agente fora do Privacy Mode afetados. A Cursor afirma que prompts e código de quem usa Privacy Mode, o aplicativo, as atualizações oficiais e os repositórios de clientes não foram tocados. Como resposta, moveu todo o tráfego de inferência para fora da Fireworks , rotacionou credenciais e reconstruiu o marketplace.
O que fazer na sua máquina agora
Se você ou alguém do seu time instalou ou atualizou a extensão Claude Code no Cursor em 29 de outubro, trate como comprometimento potencial:
inspecione ~/.ssh/authorized_keys (macOS/Linux) e %USERPROFILE%\.ssh\authorized_keys (Windows) procurando chaves desconhecidas, especialmente as adicionadas no fim do arquivo;
verifique se o serviço de SSH local está ativo sem justificativa e se há túneis ssh -R em execução;
rotacione tokens de API, credenciais de nuvem, chaves de assinatura de código e senhas de banco que já circularam em sessões de agente;
remova segredos de prompts, transcrições e arquivos de configuração versionados e adote escopo mínimo para chaves emitidas a qualquer fornecedor externo;
e, no plano estrutural, fixe versões de extensões, aplique atraso de atualização (o mesmo cooldown que ecossistemas de pacotes já oferecem) e monitore o diretório de extensões com EDR.
Uber: a mesma origem, outro tipo de dado sensível
Em notificação protocolada em 10 de novembro junto a procuradorias-gerais estaduais norte-americanas, entre elas a da Califórnia, a Uber informou que um terceiro não autorizado usou credenciais comprometidas de um provedor de serviços para acessar a conta da empresa nesse fornecedor. O aviso chegou à Uber em 9 de outubro; a conexão de dados foi cortada logo depois.
O que vazou é material de fraude de identidade de primeira linha: nomes, números de carteira de motorista e dados pessoais de milhares de motoristas. O registro na Califórnia cita 1.873 residentes de Rhode Island apenas como recorte, e a empresa passou a oferecer monitoramento de crédito gratuito. Reportagens publicadas nesta sexta-feira (13) apontam a Fireworks AI como o provedor em questão — o que, se confirmado em detalhe, transforma dois incidentes aparentemente distintos em um único evento de cadeia de suprimentos.
O padrão é conhecido e segue subestimado: o fornecedor guarda, para prestar serviço, uma cópia dos dados do contratante. Quando a credencial dele cai, o dado do cliente vai junto. Para quem contrata, a pergunta que precisa estar no questionário de due diligence não é "vocês são seguros?", mas "onde vocês armazenam cópias dos nossos dados, por quanto tempo e com que escopo de acesso?".
Operação Endgame: 235 servidores apreendidos e 6,4 milhões de logins recuperados
A Europol e parceiros de nove países desferiram a mais recente rodada da Operação Endgame contra a infraestrutura que abastece o crime organizado digital. O balanço divulgado em 12 de novembro:
235 servidores apreendidos e 257 domínios retirados do ar;
cerca de 6,4 milhões de conjuntos de dados de vítimas recuperados, pertencentes a mais de 40 mil vítimas ;
três famílias distintas neutralizadas: o Gootloader , loader ativo desde 2020 e famoso por envenenar resultados de busca para plantar malwares em máquinas corporativas; o CastleRAT , trojan de acesso remoto; e o StealC , infostealer vendido como serviço que colhe credenciais, carteiras de criptomoedas e sessões de navegador.
A cooperação com o Have I Been Pwned é o detalhe operacionalmente mais útil: vítimas do CastleRAT devem poder ser notificadas por serviços de verificação de vazamento. Se o seu domínio aparecer, a resposta não é apenas trocar senha — é assumir que o host esteve sob controle remoto e reconstruí-lo. A Endgame já havia mirado antes carregadores e botnets como IcedID, Pikabot, BumbleBee, SmokeLoader e Trickbot. O alívio, aqui, é tático: enquanto a infraestrutura está fora do ar, operadores migram para novos provedores de hospedagem em questão de dias.
Ainda no radar: Qlik Sense de volta ao alvo
Analistas da Cynet relataram tentativas de shell reverso via PowerShell contra servidores Qlik Sense de clientes na União Europeia em outubro, com a mesma cadeia de comando atingindo vários ambientes em uma janela de pouco mais de três minutos — assinatura típica de varredura automatizada. As tentativas foram bloqueadas, mas a análise da infraestrutura do atacante encontrou um diretório exposto com um backdoor em Go, scripts de persistência e exploits preparados para Apache ActiveMQ e Veeam , dois alvos clássicos de quem quer chegar ao backup antes de cifrar produção.
As falhas exploradas contra Qlik Sense são de 2023 e integram o catálogo de vulnerabilidades exploradas conhecidas da CISA — as mesmas que o grupo de ransomware CACTUS usou para entrar em redes corporativas. A mitigação é direta: Qlik Sense Enterprise for Windows na versão de novembro de 2023 ou nos patches corrigidos da sua linha (por exemplo, agosto de 2023 Patch 2 ou maio de 2023 Patch 6), com bloqueio e alerta para conexões de saída do processo de serviço web. Servidor de BI é superfície exposta: costuma rodar com privilégios altos, guardar credenciais de conectores e viver fora do inventário de segurança.
Análise: a identidade de máquina é o novo perímetro
Três histórias, um mesmo mecanismo. Na Cursor, uma chave emitida a um parceiro virou acesso ao pipeline de distribuição. Na Uber, a credencial de um fornecedor virou acesso à base de dados do cliente. Na Endgame, o produto do roubo é exatamente isso: login válido, pronto para revenda.
O recado para times de engenharia e de segurança em 2026 é que a cadeia de suprimentos se deslocou para dentro do ambiente de desenvolvimento . Extensões de editor, plugins de agente de IA, provedores de inferência, gateways de modelo: tudo isso executa código com as permissões do desenvolvedor, e quase nada disso passa por revisão de código, SBOM ou controle de mudança. Ao mesmo tempo, transcrições de agentes se tornaram uma fonte inédita de segredos — tokens colados "só para testar" ficam gravados, indexados e, eventualmente, copiados por quem não devia.
Vale também registrar o custo de reputação da assimetria regulatória. Enquanto o Brasil digere os desdobramentos dos incidentes em órgãos públicos e estatais desta semana, casos como o da Uber mostram que a notificação chega semanas depois do acesso e com escopo parcial ("dados limitados", "menos de 0,05%"). Isso não é necessariamente má-fé — é a realidade de investigações forenses em ambientes de terceiros, onde você depende da telemetria de outra empresa. Mas é argumento suficiente para que o contrato preveja prazo de notificação, direito de auditoria e obrigação de retenção mínima de dados.
O que priorizar nas próximas 48 horas
Inventarie chaves emitidas a fornecedores de IA : quem tem, com que escopo, com que validade, com qual caminho de rotação.
Verifique authorized_keys e serviços SSH nas estações de desenvolvimento que rodaram Cursor em 29 de outubro.
Aplique cooldown de atualização em extensões de editor e limite marketplaces a origens aprovadas.
Rode higiene de segredos em transcrições de agentes, logs de suporte, tick ets e repositórios arquivados.
Patch Qlik Sense e monitore processos de serviço web criando conexões de saída anômalas.
Cheque o Have I Been Pwned para domínios corporativos após a divulgação da Endgame e trate acertos como comprometimento de host, não de senha.
Se o seu time de segurança ainda não tem uma conversa marcada sobre identidade de máquina e cadeia de suprimentos de IA, esta semana é um bom motivo para marcar. Assine a newsletter para receber esse resumo técnico toda manhã e compartilhe este artigo com a equipe que faz plantão — vale mais do que qualquer alerta genérico de fornecedor.
Fontes
Continue lendo
Desenvolvimento Python 3.15: lazy import adia o erro para a primeira requisição — e o UTF-8 virou padrão
Python 3.15 trouxe lazy import (PEP 810): o ImportError sai do boot e aparece na primeira requisição, e registries de plugin ficam vazios até o primeiro uso. O UTF-8 também virou padrão e quebrou exports. Veja como medir, o que quebra e como migrar com segurança.
Ler artigo →
Desenvolvimento Go 1.27: encoding/json/v2 muda os padrões e o mesmo struct passa a gerar outro JSON
Go 1.27 tornou encoding/json/v2 estável: campo desconhecido e nome duplicado viram erro, slice nil vira [], o match de campos é case-sensitive e o UTF-8 inválido é rejeitado. Veja o que quebra, as opções que restauram o v1 e como migrar por partes.
Ler artigo →
Desenvolvimento TypeScript 7: compilador em Go é 10x mais rápido, mas a migração trava é nas ferramentas
TypeScript 7.0 trocou o compilador por uma versão em Go e levou junto a API que alimenta linters, loaders e codegen. A 7.1 beta devolve parte dela com entry points separados e content mappers. Entenda o que quebra, como rodar 6 e 7 lado a lado e o que o ngp do Angular revela.
Ler artigo →