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