- Shai Hulud 2.0 frappe de nouveau l’écosystème npm et infecte des paquets de projets majeurs comme Zapier, ENS Domains, AsyncAPI, PostHog et Postman
- Le malware s’exécute automatiquement pendant l’installation afin de voler des secrets depuis les systèmes des développeurs et les environnements cloud
- Sur les systèmes infectés, il utilise TruffleHog pour rechercher des clés API, jetons, mots de passe, puis les téléverse vers des dépôts GitHub publics
- Cette attaque est plus étendue que la précédente, avec jusqu’à 100 paquets infectés, et inclut une fonction de suppression des fichiers du répertoire personnel en cas d’échec de l’authentification
- Il s’agit d’une attaque de chaîne d’approvisionnement à grande échelle qui menace le modèle de confiance de l’écosystème npm et souligne la nécessité pour toutes les équipes de développement d’auditer et de remplacer leurs secrets
Vue d’ensemble de la campagne Shai-Hulud
- Shai-Hulud est un malware auto-réplicant de type ver dans l’écosystème npm, qui se propage rapidement via des environnements de développement compromis
- En cas d’infection, il utilise TruffleHog pour rechercher des secrets exposés comme des clés API et des jetons
- Les informations collectées sont envoyées vers des dépôts GitHub publics, puis de nouveaux paquets malveillants sont publiés sur npm pour poursuivre la propagation
- Les attaquants ont baptisé cette attaque « Second Coming »
- L’attaque a repris au moment où npm annonçait la suppression des anciens jetons le 9 décembre
Chronologie de l’attaque
- 27 août : publication du rapport sur la campagne S1ngularity
- 16 septembre : première attaque Shai-Hulud
- 18 septembre : publication d’une analyse technique et du fonctionnement de la charge utile
- 24 novembre : juste avant la suppression des jetons npm, deuxième attaque (« Second Coming »)
Évolution du mode opératoire
- Cette attaque installe le runtime Bun via le fichier
setup_bun.js, puis exécute bun_environment.js
- Elle crée des dépôts GitHub aux noms aléatoires pour y téléverser les données volées
- Le nombre de paquets ciblés est passé de 20 à 100
- En cas d’échec de l’authentification GitHub ou npm, une fonction de suppression complète du répertoire personnel de l’utilisateur est incluse
Paquets infectés
- Au total, 492 paquets npm ont été infectés, pour 132 millions de téléchargements mensuels
- Principaux projets touchés : Zapier, ENS Domains, AsyncAPI, PostHog, Postman, Browserbase
- Exemples de paquets :
@zapier/zapier-sdk, @ensdomains/ensjs, @asyncapi/cli, posthog-js, @postman/pm-bin-linux-x64
Fuite de secrets
- Le malware téléverse les secrets dans des dépôts GitHub contenant la description « Sha1-Hulud: The Second Coming »
- À ce stade, plus de 26 300 dépôts auraient été exposés
Les erreurs des attaquants
- Certains paquets ne contenaient que
setup_bun.js, sans bun_environment.js, ce qui a empêché l’exécution complète du ver
- Cela a limité l’ampleur de la propagation
Vecteur d’infection et point initial de compromission
- La première infection a commencé le 24 novembre 2025 à 03:16:26 GMT+0 dans
go-template et 36 paquets liés à AsyncAPI
- La propagation s’est ensuite poursuivie vers PostHog (04:11:55) puis Postman (05:09:25)
- Du code déployé après la création d’une branche malveillante a été identifié dans le dépôt AsyncAPI CLI
Impact potentiel
- L’exécution automatique à l’installation permet d’accéder à l’environnement local des développeurs, aux systèmes de build et aux identifiants cloud
- Les secrets volés peuvent servir à compromettre d’autres comptes et publier de nouveaux paquets malveillants
- Cela constitue une grave menace pour la sécurité de la chaîne d’approvisionnement fondée sur la confiance dans l’écosystème npm
Recommandations de réponse de sécurité
- Auditer l’ensemble des dépendances npm liées à Zapier et ENS
- Remplacer intégralement les secrets GitHub, npm, cloud et CI/CD
- Rechercher sur GitHub les dépôts contenant la description « Sha1-Hulud: The Second Coming »
- Désactiver les scripts npm
postinstall dans les environnements CI
- Épingler les versions des paquets et activer la MFA, et bloquer les paquets malveillants avec des outils comme Safe-Chain
Conclusion
- Shai-Hulud 2.0 constitue une nouvelle attaque massive ciblant la chaîne d’approvisionnement npm, qui a touché
des centaines de paquets populaires et des milliers de dépôts GitHub
- Toutes les équipes de développement doivent immédiatement vérifier leurs dépendances, remplacer leurs secrets et bloquer les scripts d’installation automatique
Aucun commentaire pour le moment.