Un ver sophistiqué baptisé « Mini Shai-Hulud » a compromis plus de 170 paquets dans les registres npm et PyPI lors d'une attaque massive de la chaîne d'approvisionnement, impactant des projets totalisant plus de 518 millions de téléchargements et introduisant une technique inédite pour contourner les attestations de sécurité.
« L'attaque a publié des versions malveillantes via le pipeline de publication GitHub Actions du projet lui-même en utilisant des jetons OIDC détournés », a déclaré Ashish Kurmi, chercheur chez StepSecurity. « Dans une escalade extrêmement rare, les paquets compromis portent des attestations de provenance valides SLSA Build Level 3, ce qui en fait le premier ver npm documenté capable de produire des paquets malveillants valablement attestés. »
La campagne, attribuée au groupe de menace TeamPCP, a touché 42 paquets TanStack, 65 d'UiPath, ainsi que d'autres de Mistral AI, OpenSearch et Guardrails AI. La compromission de TanStack (CVE-2026-45321), jugée critique avec un score CVSS de 9,6, a impliqué une attaque en chaîne utilisant une mauvaise configuration de pull_request_target et un empoisonnement du cache pour extraire les jetons OIDC de la mémoire du processus d'exécution de GitHub Actions, permettant à l'attaquant de publier des paquets sans voler de jetons npm.
La capacité de l'attaque à générer une provenance SLSA valide pour des paquets malveillants érode la confiance dans les systèmes mêmes conçus pour sécuriser la chaîne d'approvisionnement logicielle. Cet incident met la pression sur des plateformes comme GitHub et des registres comme npm pour corriger les faiblesses architecturales des pipelines CI/CD, car le risque financier et opérationnel s'étend désormais à tout projet utilisant des dépendances de mainteneurs compromis, affectant potentiellement des milliards de dollars de valeur logicielle.
Une charge utile à plusieurs étapes vole les identifiants cloud et crypto
Le cœur de l'attaque est un voleur d'identifiants à plusieurs étapes, souvent intégré sous la forme d'un fichier JavaScript obfusqué nommé « router_init.js ». Le logiciel malveillant effectue un profilage approfondi de l'environnement de la victime pour dérober un large éventail d'informations sensibles, notamment des identifiants de fournisseurs cloud, des portefeuilles de crypto-monnaies, des outils d'IA et des applications de messagerie. Selon la société de sécurité SlowMist, le ver est explicitement conçu pour voler les clés CI/CD et les informations de portefeuilles crypto.
Les données sont exfiltrées via plusieurs canaux, dont un domaine (filev2.getsession[.]org) qui utilise le service de messagerie privé Session pour échapper à la détection. En dernier recours, les données volées sont également soumises à des dépôts GitHub contrôlés par l'attaquant. Le malware établit également une persistance dans les éditeurs de code populaires comme VS Code pour survivre aux redémarrages.
Une variante Python du malware, trouvée dans les paquets compromis guardrails-ai et mistralai, récupère une charge utile depuis un serveur distant ciblant les gestionnaires de mots de passe comme 1Password et Bitwarden. L'analyse de Microsoft a noté que cette variante contient une branche destructive avec une chance sur six de supprimer tous les fichiers sur les systèmes semblant se trouver en Israël ou en Iran.
Le ver se propage via le détournement d'identités de développeurs
Ce qui rend le ver Mini Shai-Hulud particulièrement dangereux est sa capacité d'auto-propagation. Le malware utilise les jetons GitHub OIDC volés pour générer de nouveaux jetons de publication npm, lui permettant de publier des versions malveillantes d'autres paquets maintenus par le développeur compromis. Cette technique contourne le besoin d'authentification traditionnelle ou d'authentification à deux facteurs, créant une menace à propagation rapide.
Les attaquants ont automatisé ce processus, créant plus de 400 dépôts malveillants avec la description « Shai-Hulud: Here We Go Again », une référence à la saga Dune. Le ver usurpe l'identité des auteurs de commits pour apparaître comme des applications légitimes, masquant davantage son activité.
Les chercheurs en sécurité conseillent à tous les développeurs de vérifier si des versions de paquets compromises sont entrées dans leurs environnements, de renouveler tous les identifiants potentiellement exposés et d'auditer leurs configurations GitHub Actions OIDC pour détecter d'éventuelles faiblesses de sécurité.
Cet article est à titre informatif uniquement et ne constitue pas un conseil en investissement.