Glassworm frappe de nouveau : 400 dépôts github piégés par des caractères fantômes

Le 3 mars, alors que la communauté dev festoyait encore avec les nouvelles versions de Wasmer, Reworm et Anomalyco, un silence suspect s’est glissé dans leurs pull requests. En coulisses, Glassworm réactivait sa machine à laver le cerveau des dépôts : 200 projets Python, 151 en JavaScript/TypeScript, 72 extensions VSCode et une dizaine de paquets npm viennent d’être compromis par une injection de caractères Unicode invisibles. Résultat : un code qui ressemble à du vent, mais qui draine wallets, sessions et secrets vers des serveurs Solana fantômes.

Des espaces blancs qui valent de l’or

L’astuce tient en 14 octets : U+200B, U+2060, U+FEFF… autant de « zéro-width » qui n’affichent rien sur VSCode, rien sur le terminal, rien sur l’interface de revue. Pourtant, une fois décodés, ces glyphes muets réhydratent un script secondaire capable de vider une billetera en moins de 200 ms. Aikido, la firme qui a tiré la sonnette d’alarme, parle d’une « stéganographie de plain text » : le maliciel se cache littéralement dans le vide.

La chronologie est implacable. Premières traces : mars 2024. Rebond : 3-9 mars 2025. Entre-temps, les mainteneurs ont fusionné des PR intitulées « fix typo » ou « bump version », sans remarquer la variable lzcdrtfxyqiplpd –la signature atomique de Glassworm– glissée au milieu d’un bloc de documentation. Le tout relu, approuvé, starifié. Le dépôt pedronauck/reworm affiche 1 460 étoiles ; autant de machines qui ont téléchargé la backdoor sans bronch.

Quand l’ia devient complice du virus

Quand l’ia devient complice du virus

Aikido écarte la piste du copier-coller manuel : « 151 changements personnalisés dans des bases de code distinctes, c’est irréaliste sans automatisation. » L’hypothèse : des LLM alimentés par les acteurs de Glassworm génèrent des messages de commit crédibles, rédigés sur mesure pour chaque projet. Le code malveillant est ainsi enveloppé dans une rhétorique open-source classique : refacto, optimisation, correction orthographique. Les reviewers, saturés par la charge, cliquent « merge ».

Le piège se referme plus loin que GitHub. Les extensions d’éditeur contaminées peuvent aspirer les tokens de session de n’importe quel développeur qui ouvre son IDE. Une fois inside, le script fileless exploite l’API Solana pour transférer les SOL, les NFT, les clés privées. Pas de fichier sur le disque, aucune signature antivirus : juste une chaîne string qui s’autodétruit après exécution.

Le seul remède : cloner avant d’installer

Le seul remède : cloner avant d’installer

Pas question d’attendre un patch. La firme recommande d’installer les paquets Python directement depuis les releases Git signées, de cloner les dépôts et de grepper la fameuse variable lzcdrtfxyqiplpd avant toute traction. Pour les extensions VSCode, se fier au marketplace officiel ne suffit plus : vérifier le checksum, auditer le manifest, refuser les mises à jour nocturnes. Et surtout, isoler les environnements de build dans des conteneurs jetables.

Glassworm a montré que la confiance est devenue une surface d’attaque. Quand un simple espace blanc peut valoir des milliers de dollars, la prochaine star du dépôt pourrait bien être une ligne vide.