Ladrão em extensões do VS Code: carteiras e chaves saem por um bot do Telegram

10.08.2026 7 min 5

Duas extensões maliciosas do VS Code chamadas Solidity Pro passaram meses parecendo ferramenta comum de desenvolvedor antes de virarem ladras de credenciais. A Yeeth Security publicou a análise em 6 de agosto de 2026, e o que importa não é a carga e sim a paciência: o código malicioso espera entre doze e setenta e duas horas depois da instalação para rodar. A essa altura o scanner da loja já terminou, e o desenvolvedor já decidiu que a extensão é útil.

O que as extensões Solidity Pro faziam de verdade

As extensões saíram sob várias identidades de editor, entre elas helper-beeps.solidity-pro e web3devtoolsx.solidity-pro, no Open VSX e no VS Code Marketplace. Elas se passavam por ferramenta para Solidity, a linguagem em que se escrevem os contratos inteligentes do Ethereum, o que coloca o público-alvo numa posição conveniente para um atacante: gente que guarda chaves de carteira na máquina de trabalho.

O comportamento mudava junto com o número da versão. As entregas da 1.0.0 até a 2.4.x funcionavam como conta-gotas: chamavam endpoints do Cloudflare Workers, baixavam uma carga em Python cifrada com AES-GCM e a executavam via child_process.spawn. As versões 2.4.7 e 2.4.8 mantiveram o mesmo esqueleto com ofuscação mais densa. A partir da 3.0.0 a extensão trazia um ladrão de carteiras cripto completo, e as versões mais novas abandonaram de vez a etapa do Cloudflare em favor de um envio direto para um bot do Telegram. O editor web3devtoolsx ainda publicou builds limpas e inofensivas numeradas 1.0.0 e 4.0.0: é assim que um pacote constrói um histórico convincente.

O que o ladrão de carteiras cripto leva

A lista do butim se lê como um inventário da vida profissional inteira de um desenvolvedor. Em credenciais: tokens do GitHub nos formatos ghp_ e github_pat_, tokens do GitLab glpat-, chaves e tokens de sessão da AWS, tokens da Cloudflare, chaves de API da OpenAI e da Anthropic, e tokens de bots do Telegram. Em criptografia: chaves privadas SSH, chaves de Bitcoin em WIF e xprv, frases semente e os cofres das carteiras MetaMask, Phantom, Rabby, Coinbase, Trust e Keplr. Também recolhe credenciais embutidas em endereços e tokens MFA do 1Password.

Importante: uma frase semente não é uma senha. Não há redefinição, não há atendimento e não há estorno de transação. Se ela foi guardada, digitada ou colada numa máquina em que rodou uma versão comprometida, o correto é assumir que os fundos ligados a ela já se foram, e a única ação útil é movê-los para uma carteira cujas chaves essa máquina nunca viu.

Como passou pela revisão: de doze a setenta e duas horas de paciência

O atraso é configurado como intervalo aleatório de doze a setenta e duas horas depois da instalação. Antes de ativar, a carga verifica variáveis de ambiente que entregam um ambiente automatizado, entre elas CI, GITHUB_ACTIONS, JENKINS_HOME e GITPOD_WORKSPACE_ID, e continua adormecida se as encontra. Um scanner que instala um pacote, observa por alguns minutos e segue adiante vai ver um auxiliar de Solidity que não faz nada de estranho, porque naquele momento ele realmente não faz nada de estranho.

O resto é ofício, não novidade: endereços de endpoints guardados como fragmentos hexadecimais e remontados em tempo de execução, cadeias divididas em tabelas de funções autoinvocadas, blocos base64 passados por eval() e nomes de método que giram de versão em versão para que uma assinatura escrita para uma não sirva na seguinte. As primeiras versões faziam até uma requisição de disfarce à API pública de preços do CoinGecko, exatamente o que uma ferramenta real de desenvolvimento cripto faria.

O manual do WhiteCobra e os contadores de download inflados

A Yeeth liga esta campanha ao WhiteCobra, grupo que desde 2025 inunda as lojas de extensões, mas nota que os artefatos diferem o bastante para se falar em correspondência de comportamento, e não byte a byte. A comparação vale a pena porque o plano do próprio grupo vazou. Em setembro de 2025 a Koi Security publicou um arquivo intitulado "DEPLOYMENT PLAN: Operation Solidity Pro", recuperado de uma campanha de 24 extensões maliciosas no VS Code Marketplace e no Open VSX.

Ele é escrito como lançamento de produto. Cinco fases: empacotar, publicar, promover, inflar, exfiltrar. A fase de promoção descreve modelos para redes sociais e bots; a de inflar manda deixar um script rodando até a extensão exibir 50 mil downloads, nas palavras do próprio plano para "fornecer prova social aos desenvolvedores que descobrirem a extensão". A estimativa de receita vai de 10 mil a 500 mil dólares por hora, dependendo de qual carteira cair. A lição prática é direta: o contador de downloads é um número que o atacante controla, então não pode ser o que convence você.

O que fazer agora

  • Ver o que está instalado, não o que você lembra de ter instalado: as duas extensões Solidity Pro sumiram do Open VSX, mas remoção de uma loja não desinstala nada numa máquina onde o pacote já está.
  • Tratar um acerto como comprometimento total de credenciais: trocar tokens de GitHub, GitLab, AWS, Cloudflare e chaves de API, gerar novas chaves SSH e mover as cripto para uma carteira criada num aparelho limpo. Trocar um token só não basta quando o ladrão levou o conjunto inteiro.
  • Julgar o editor, não o contador: o contador é inflado de propósito. Um editor desconhecido com números impressionantes e histórico curto é exatamente o perfil que o plano descreve.
  • Manter frases semente fora da máquina de desenvolvimento: uma carteira de hardware mantém as chaves de assinatura longe do alcance de qualquer extensão do editor.
  • Auditar extensões com regularidade: remover o que não usa mais. Toda extensão instalada roda com as suas permissões e se atualiza sozinha, em silêncio.
  • Reparar no que um editor nunca deveria fazer: uma extensão que dispara powershell, cmd, mshta, cscript ou curl merece um alerta em qualquer ferramenta de segurança que você já tenha rodando.

Por que isso importa além dos desenvolvedores

A máquina de um desenvolvedor é uma chave mestra. Os acessos que ficam nela abrem as esteiras que compilam softwares que outras pessoas instalam, e por isso um roubo desses raramente para na primeira vítima. A mesma lógica atravessou a falha do VS Code em que um único clique entregava repositórios do GitHub e os agentes de código em que uma issue do GitHub chegava aos segredos do CI. É aqui também que as ferramentas de privacidade de rede deixam de ser relevantes, e dizer isso com franqueza é mais útil do que vender: uma VPN cifra a conexão que a extensão abre, ela não decide se a extensão deveria abri-la. Bloquear domínios de comando conhecidos na camada de DNS é uma defesa real, ainda que parcial, contra a etapa do conta-gotas, mas código que você mesmo instalou e a quem você mesmo deu permissões não é um problema de rede.

Conclusão

Conclusão: aqui não foi preciso nenhuma vulnerabilidade. As extensões foram instaladas de propósito, por gente que queria o recurso anunciado, e a única parte esperta foi esperar tempo suficiente para todo mundo parar de olhar. As lojas vão continuar hospedando isso porque os sinais de confiança que elas exibem, contadores de download e estrelas, saem mais baratos de falsificar do que de merecer. Enquanto verificação de editor não significar nada, o hábito útil é menor do que parece: instalar menos extensões, saber quem as publica e guardar as chaves que importam num aparelho que o seu editor nunca tocou.

vs codemicrosoftsolidity prowhitecobrayeeth securitykoi securityopen vsxgithubgitlabawscloudflaretelegrammetamaskphantomcoinbasetrust wallet1passwordethereumcryptocurrencymalwaresupply chaincybersecuritysecurityprivacyvpn

Leia também