Shai-Hulud : un malware open source transforme la chaîne logicielle
Découvert à l’automne 2025, le ver Shai-Hulud s’est imposé comme un symbole inquiétant des attaques modernes contre la supply chain open source. JFrog a récemment révélé une nouvelle campagne qui va au-delà de la simple contamination de paquets npm, touchant désormais les postes de développeurs, les pipelines CI/CD, GitHub, les outils de code assisté par IA, et les mécanismes de publication « de confiance ».
Shai-Hulud est un malware autoréplicatif ciblant principalement npm, le registre de paquets JavaScript. Après avoir volé les identifiants d’un mainteneur, il identifie les paquets qu’il peut publier, y injecte son code, incrémente leur numéro de version et diffuse les versions compromises. Chaque nouvelle installation peut ainsi fournir d’autres jetons npm ou GitHub, relançant la propagation.
Apparu en septembre 2025, Shai-Hulud est considéré comme l’un des premiers vers autoréplicatifs à avoir opéré à grande échelle dans une chaîne d’approvisionnement open source, entraînant la suppression de plus de 500 paquets npm compromis par GitHub. Une seconde vague, à la fin de 2025, a ajouté des fonctionnalités d’obfuscation, de persistance, et même des fonctions destructrices. En mai 2026, une variante nommée « Mini Shai-Hulud » a touché simultanément npm et PyPI, avec plus de 170 paquets npm et deux paquets Python compromis.
Cette semaine, JFrog a identifié une nouvelle campagne exploitant ce malware, qui aurait débuté avec deux bibliothèques de cache largement utilisées, keyv 6.0.0 et cacheable 2.5.1. Le bilan provisoire de cette attaque dépasse déjà 400 paquets et 1 700 versions, une opération également suivie par les experts cyber de Microsoft sous le nom de ChainDrop.
L’infection débute par l’installation d’une version compromise, où un script preinstall exécute un chargeur compatible avec plusieurs systèmes d’exploitation. Une fois actif, Shai-Hulud recherche divers secrets (jetons npm, identifiants cloud, clés SSH, etc.) sur le poste du développeur ou dans le runner CI/CD. Il utilise ensuite cet accès pour modifier les paquets contrôlés par le compte compromis, créant ainsi une boucle d’infection rapide.
JFrog souligne que, bien que npm 12 n’exécute plus les hooks par défaut, d’autres mécanismes de persistance restent exposés. La portée de collecte des secrets est vaste et inclut des identifiants de navigateurs, des portefeuilles cryptographiques, et des accès à des outils d’IA.
Les conséquences de cette nouvelle campagne sont inquiétantes, car Shai-Hulud exploite les automatismes et les preuves de confiance qui structurent la supply chain. Pour les organisations touchées, désinstaller le paquet ne suffira pas : elles doivent considérer leurs machines comme compromises, reconstruire leurs runners CI/CD, révoquer tous les secrets accessibles, et auditer chaque branche GitHub.
La situation rappelle que la confiance par défaut dans les paquets, les workflows et les contributions générées par l’IA peut mener à des vulnérabilités majeures dans la chaîne logicielle.
Source : JFrog.


