Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

Un malware invisible se cache dans des caractères Unicode sur GitHub, npm et VS Code

Par : Korben
16 mars 2026 à 15:50

La société Aikido Security a découvert une campagne de malware baptisée Glassworm qui utilise des caractères Unicode invisibles pour dissimuler du code malveillant.

Plus de 150 dépôts GitHub, des paquets npm et des extensions VS Code sont touchés, et le malware utilise la blockchain Solana comme serveur de commande. L'objectif : voler les identifiants de portefeuilles crypto.

Des caractères invisibles qui cachent du code

Le principe est assez fourbe. Les attaquants utilisent des caractères Unicode dits PUA (Private Use Area), qui ne s'affichent pas du tout à l'écran, mais qui contiennent quand même des valeurs exploitables.

Dit plus simplement, chaque caractère invisible correspond à un point de code que le décodeur extrait, reconstruit en payload, puis exécute via eval(). Le code malveillant est là, sous vos yeux, mais vous ne le voyez pas.

Aikido Security a découvert que cette campagne avait eu lieu entre le 3 et le 9 mars derniers. Plus de 150 dépôts GitHub ont été compromis, mais aussi des paquets npm comme @aifabrix/miso-client et @iflow-mcp/watercrawl-watercrawl-mcp.

Si on regarde du côté de VS Code, l'extension quartz-markdown-editor et 72 extensions sur Open VSX ont été touchées. Les attaquants ont aussi utilisé des LLM pour générer des commits de couverture parfaitement crédibles, et passer ainsi sous les radars des reviewers.

La blockchain Solana impliquée

Ce qui rend Glassworm encore plus fourbe, c'est son infrastructure. Au lieu d'utiliser un serveur classique facile à bloquer, le malware récupère ses instructions de commande sur la blockchain Solana. Ce qui veut dire qu'il n'y a pas de serveur central à couper : les instructions sont inscrites dans la blockchain, accessibles à tous et quasi impossibles à supprimer.

L'objectif final est le vol de données liées aux portefeuilles crypto. Le malware cible 49 extensions de navigateur, dont MetaMask, Coinbase Wallet et Phantom. Il récupère les identifiants stockés localement et les exfiltre vers les serveurs des attaquants.

Côté attaquants, c'est du beau travail. Cacher du code dans des caractères que personne ne voit, utiliser une blockchain comme canal de commande et se servir d'IA pour maquiller les commits, c'est bien ficelé.

Le problème, c'est que ça expose un angle mort assez gênant dans la confiance qu'on accorde à l'open source : on installe des paquets et des extensions sans forcément lire chaque ligne de code, et quand le code malveillant est carrément invisible, ça devient compliqué à détecter.

Sources : Aikido.dev , Socket.dev

Faux entretiens d'embauche - Le piège qui vise les devs Next.js

Par : Korben
26 février 2026 à 14:26

Des faux entretiens d'embauche avec des repos GitHub vérolés pour piéger les devs Next.js... on croit rêver et pourtant, Microsoft vient de documenter cette campagne ciblée et vous allez voir, c'est violent.

En fait, un groupe de hackers se fait actuellement passer pour des recruteurs et contacte des développeurs JavaScript en leur proposant un entretien technique. Le deal c'est de cloner un repo GitHub pour un "test de compétences"... sauf que le repo en question est truffé de malware.

Microsoft a ainsi identifié plusieurs vecteurs d'infection planqués dans ces repos. Le premier, c'est via les fichiers de configuration VS Code, c'est à dire ceux dans le dossier .vscode/, qui peuvent exécuter du code dès que vous cliquez "Trust" à l'ouverture du projet (ce que la plupart des devs font sans réfléchir).

Le deuxième passe par un npm run dev piégé, la commande de dev classique qui lance le malware en même temps que le serveur (car oui, c'est aussi simple que ça...).

Et le troisième est encore plus sournois puisqu'il s'agit d'un module backend qui décode une URL depuis le fichier .env, exfiltre toutes les variables d'environnement (tokens cloud, clés API...), puis exécute du JavaScript reçu en retour. Sympaaaaaa....

Du coup, le malware est plutôt bien pensé. C'est un loader JavaScript qui se télécharge depuis l'infrastructure Vercel (comme ça, ça a l'air légitime), et qui s'exécute entièrement en mémoire, et spawne un processus Node.js séparé pour ne pas éveiller les soupçons. Une fois installé, il se connecte alors à un serveur C2 qui change d'identifiant régulièrement, histoire de compliquer la détection. Et là, ça se met à exfiltrer tout ce qui traîne... code source, secrets, credentials cloud... bref, tout ce qui a de la valeur.

Alors, comment on se protège de ce genre de menace quand on est un simple dev ? Hé bien déjà, vérifiez le profil du "recruteur". Pas de site d'entreprise vérifiable, des messages génériques... c'est un joli red flag !

Ensuite, avant de lancer quoi que ce soit, lisez le package.json à la recherche de scripts suspects dans preinstall, postinstall ou prepare, inspectez le dossier .vscode/ (surtout tasks.json), et faites un npm install --ignore-scripts pour bloquer l'exécution automatique des hooks. Lancez aussi un safe-npm et un npm audit une fois les dépendances installées. Et côté VS Code, désactivez l'exécution auto des tasks avec "task.allowAutomaticTasks": "off" dans vos settings.

Ça me rappelle les campagnes type Shai-Hulud et les packages npm vérolés , mais avec un vecteur social bien plus élaboré. Le piège, c'est qu'on ne balance plus des packages malveillants dans le registry en espérant qu'un dev les installe par erreur... non, non, on cible directement les développeurs, un par un, en exploitant ce stress de la recherche d'emploi comme le ferait un conseiller France Travail quand vous arrivez en fin de droits chomdu...

Et si vous êtes en pleine recherche d'emploi, attention, ne lancez JAMAIS un projet d'un inconnu dans votre environnement principal. Utilisez une VM, un container Docker (docker run --rm -it -v $(pwd):/app node:20 bash et c'est réglé), ou au minimum un compte utilisateur séparé sans accès à vos tokens et clés SSH. On n'est jamais trop prudent !

Maintenant vous savez... si un recruteur vous envoie un repo GitHub sans profil LinkedIn ni site d'entreprise véritable et vérifiable... c'est que c'est pas un recruteur. Voilà voilà...

Source

❌
❌