Le malware GlassWorm refait surface, ciblant des centaines de dépôts sur GitHub, npm et VSCode
L'attaque de la chaîne d'approvisionnement **GlassWorm** est de retour avec une vengeance, compromettant des centaines de packages, dépôts et extensions sur plusieurs plateformes. Les chercheurs en sécurité tirent la sonnette d'alarme sur la nature coordonnée et la portée étendue de cette campagne.

Des chercheurs de **Aikido**, **Socket**, **Step Security** et de la communauté **OpenSourceMalware** ont collectivement identifié 433 composants compromis ce mois-ci dans des attaques attribuées à **GlassWorm**.
### Aperçu de la campagne
Les preuves suggèrent qu'un seul acteur de menace est à l'origine des campagnes **GlassWorm**, utilisant la même adresse de la blockchain **Solana** pour les activités de command-and-control (C2), des payloads identiques ou fonctionnellement similaires, et une infrastructure partagée.
**GlassWorm** a été observé pour la première fois en octobre dernier. Les attaquants ont utilisé des caractères Unicode « invisibles » pour dissimuler du code malveillant conçu pour voler des données de portefeuille de cryptomonnaies et des identifiants de développeurs.
La campagne s'est étendue au marketplace officiel **Visual Studio Code** de **Microsoft** et au registre **OpenVSX**, comme l'a découvert John Tuckner, chercheur chez Secure Annex.
Les systèmes **macOS** ont également été ciblés, avec des clients troyanisés pour **Trezor** et **Ledger**, puis des développeurs via des extensions **OpenVSX** compromises.
### Portée de la dernière attaque
La dernière vague d'attaques **GlassWorm** est considérablement plus étendue, impactant :
* 200 dépôts Python sur **GitHub**
* 151 dépôts JS/TS sur **GitHub**
* 72 extensions **VSCode/OpenVSX**
* 10 packages **npm**
### Vecteurs d'attaque et techniques
La compromission initiale se produit sur **GitHub**, où les comptes sont compromis pour forcer des commits malveillants.
Des packages et extensions malveillants sont ensuite publiés sur **npm** et **VSCode/OpenVSX**, présentant du code obfusqué (caractères Unicode invisibles) pour échapper à la détection.

*Source : Aikido*
Sur toutes les plateformes, la blockchain **Solana** est interrogée toutes les cinq secondes pour de nouvelles instructions. Selon **Step Security**, entre le 27 novembre 2025 et le 13 mars 2026, il y a eu 50 nouvelles transactions, principalement pour mettre à jour l'URL du payload.
Les instructions étaient intégrées comme des mémos dans les transactions et menaient au téléchargement du runtime **Node.js** et à l'exécution d'un voleur d'informations basé sur JavaScript.

*Source : Step Security*
Le malware cible les données de portefeuille de cryptomonnaies, les identifiants, les jetons d'accès, les clés SSH et les données de l'environnement de développement.
### Attribution et atténuation
L'analyse des commentaires de code suggère que des acteurs de menace russophones pourraient être à l'origine de **GlassWorm**. Le malware saute l'exécution si la locale russe est trouvée sur le système. Cependant, cela est insuffisant pour une attribution certaine.
**Step Security** conseille aux développeurs qui installent des packages Python directement depuis **GitHub** ou qui exécutent des dépôts clonés de rechercher des signes de compromission en cherchant dans leur codebase la variable marqueur « lzcdrtfxyqiplpd », un indicateur du malware **GlassWorm**.

*Source : Step Security*
Ils recommandent également d'inspecter les systèmes pour la présence du fichier *~/init.json*, qui est utilisé pour la persistance, ainsi que des installations inattendues de **Node.js** dans le répertoire personnel (par exemple, ~/node-v22*).
De plus, les développeurs devraient rechercher des fichiers *i.js* suspects dans les projets récemment clonés et examiner les historiques de commits **Git** pour détecter des anomalies, telles que des commits où la date du committer est significativement plus récente que la date de l'auteur original.