Pesquisadores da Koi Security identificaram o GlassWorm, um worm autossuficiente que se propaga por meio de extensões do Visual Studio Code (VS Code) distribuídas no Open VSX Registry e no Microsoft Extension Marketplace. A campanha, detectada em 17 de outubro de 2025, representa o segundo ataque desse tipo contra o ecossistema DevOps em menos de um mês, depois do Shai-Hulud, que atingiu o npm em setembro.
O GlassWorm chama atenção por utilizar a blockchain Solana como canal de comando e controle (C2), tornando a infraestrutura difícil de derrubar. Como plano B, o código malicioso recorre a eventos do Google Calendar para receber instruções.
Outra técnica inédita é o emprego de caracteres Unicode invisíveis — variation selectors — para ocultar o código malicioso dentro dos arquivos, dificultando a detecção em editores de texto.
Objetivos do ataque
Segundo o relatório, o worm procura:
- capturar credenciais de npm, Open VSX, GitHub e Git;
 - esvaziar fundos de 49 extensões de carteiras de criptomoedas;
 - instalar servidores proxy SOCKS para transformar máquinas de desenvolvedores em pontos de retransmissão;
 - implantar servidores de VNC ocultos (HVNC) para acesso remoto;
 - usar credenciais roubadas para contaminar novos pacotes e extensões.
 
Extensões comprometidas
Foram identificadas 14 extensões infectadas — 13 no Open VSX e uma no marketplace da Microsoft — somando cerca de 35.800 downloads:
- codejoy.codejoy-vscode-extension 1.8.3 e 1.8.4
 - l-igh-t.vscode-theme-seti-folder 1.2.3
 - kleinesfilmroellchen.serenity-dsl-syntaxhighlight 0.3.2
 - JScearcy.rust-doc-viewer 4.2.1
 - SIRILMP.dark-theme-sm 3.11.4
 - CodeInKlingon.git-worktree-menu 1.0.9 e 1.0.91
 - ginfuru.better-nunjucks 0.3.2
 - ellacrity.recoil 0.7.4
 - grrrck.positron-plus-1-e 0.0.71
 - jeronimoekerdt.color-picker-universal 2.8.91
 - srcery-colors.srcery-colors 0.3.9
 - sissel.shopify-liquid 4.0.1
 - TretinV3.forts-api-extention 0.3.1
 - cline-ai-main.cline-ai-agent 3.1.3 (Microsoft Extension Marketplace)
 
Como o GlassWorm atua
O código malicioso monitora transações ligadas a uma carteira controlada pelo invasor na blockchain Solana. Ao identificar uma movimentação, extrai da memo field uma string em Base64 que revela o endereço C2 (217.69.3[.]218 ou 199.247.10[.]166). Desse servidor, faz o download de um stealer que coleta credenciais e dados de carteiras, consulta um evento no Google Calendar para novo comando em Base64 e, em seguida, baixa o módulo Zombi.
Imagem: Internet
Escrito em JavaScript, o Zombi amplia a invasão ao instalar proxy SOCKS, módulos WebRTC para comunicação ponto a ponto, Distributed Hash Table (DHT) do BitTorrent para comando descentralizado e HVNC para controle remoto. Os dados capturados são enviados a 140.82.52[.]31:80.
A atualização automática padrão das extensões do VS Code facilita a disseminação silenciosa do worm, dispensando qualquer ação do usuário.
Especialistas alertam que a adoção de blockchains para entregar cargas maliciosas está em alta, impulsionada pela flexibilidade e pseudonimato da tecnologia.
Com informações de The Hacker News