1 points par GN⁺ 2025-11-25 | 1 commentaires | Partager sur WhatsApp
  • 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

1 commentaires

 
GN⁺ 2025-11-25
Avis Hacker News
  • Cela vaut la peine de mentionner Bubblewrap (bwrap). Cet outil peut éliminer la plupart des vecteurs d’attaque possibles dans l’environnement npm/node, ou au minimum limiter les dégâts en cas d’exécution de code arbitraire
    Ce n’est pas une solution parfaite, mais avec un simple script wrapper, cela me semble bien meilleur qu’un conteneur Podman rootless
    Lien GitHub de Bubblewrap

  • Partage un script écrit en Python. Ce script vérifie si, dans mes dépôts, les fichiers lock pnpm ou npm contiennent des paquets compromis
    Lien vers le script

  • Au début, cela semblait être un doublon (Dup), mais en réalité c’était un autre article
    Lien connexe

    • Explique avoir fusionné les commentaires liés en un seul fil. Même si les liens diffèrent, si le sujet de discussion est en pratique le même, cela correspond aux critères de fusion. Comme le deuxième lien apportait des informations supplémentaires, il a aussi été affiché en haut du post original
    • Mentionne que cet article contient pas mal d’informations supplémentaires
    • Suggère d’utiliser « Dup » pour une resoumission du même lien, et « See also » pour un autre lien portant sur le même incident
    • Souligne qu’il ne s’agit pas d’un doublon, mais d’un article différent sur le même incident
    • Donne aussi en référence Shai-Hulud Returns: Over 300 NPM Packages Infected (helixguard.ai)
  • Indique que la discussion en doublon est en cours ici

  • Fait remarquer qu’il y a une faute de frappe dans le titre. Le titre actuel sur HN est

    SHA1-Hulud the Second Comming – Postman, Zapier, PostHog All Compromised via NPM
    mais l’orthographe correcte est Shai-Hulud

    • Cependant, le nom du dépôt où les secrets ont effectivement été mis en ligne est Sha1-Hulud: The Second Coming, ce qui semble avoir créé la confusion
    • Le ver publie lui-même des secrets sur GitHub sous le nom sha1-hulud
      Lien de recherche GitHub connexe
    • Quelqu’un note aussi que « coming » ne prend qu’un seul m, et se demande s’il s’agit peut-être d’un jeu de mots intentionnel
    • Dit ne pas comprendre la raison des downvotes, et explique que l’attaque réelle n’a rien à voir avec l’algorithme SHA1, et que le nom n’avait pas non plus cette intention parodique