Résumé
Le CERT-FR a connaissance d'une vague de compromission de paquets NPM ayant débuté le 23 novembre 2025. En date du 26 novembre 2025, plus de 700 paquets ont été affectés. Ce nombre important est dû à l'auto-réplication du logiciel malveillant. Seules quelques versions de ces paquets, les plus récentes, ont été compromises. Plusieurs d'entre elles ont été supprimées par les développeurs par la suite.
Cette campagne est nommée Sha1-Hulud 2.0, Shai-Hulud ou Shai Hulud dans plusieurs billets de blogues. Elle est similaire à celle présentée en septembre 2025, dans le bulletin d'actualité CERTFR-2025-ACT-040.
Des listes de paquets concernés par cette vague ainsi que des indicateurs de compromissions sont disponibles (cf. section Documentation). Ces informations techniques n'ont pas été qualifiées par le CERT-FR.
Les éditeurs PostHog et Postman précisent les versions de leurs paquets qui ont été compromises [1][2].
Lorsqu'une version malveillante d'un paquet a été téléchargée, un script de pré-installation est exécuté et peut effectuer les actions suivantes :
- récupération de différents secrets présents sur la machine compromise au travers de variables d'environnement ou de fichier de configuration. L'outil TruffleHog est également utilisé dans cette optique ;
- exfiltration des secrets ;
- réplication par l'infection de paquets NPM ;
- suppression de données utilisateurs.
Recommandations
En raison de l'évolution de la campagne, le CERT-FR recommande de :
- chercher les différents indicateurs de compromissions présentés dans les billets de blogue et en particulier le fichier
bun_environment.js; - vérifier l'ensemble des paquets NPM installés et leurs versions et les comparer aux versions indiquées comme compromises.
Si cela est possible :
- geler temporairement la mise à jour des paquets NPM et utiliser des versions connues comme légitimes ;
- effectuer un redémarrage des machines susceptibles d'utiliser les paquets.
En cas de suspicion de compromission :
- désinstaller l'ensemble des paquets concernés ;
- vérifier l'intégrité des plateformes d'intégration continue et des potentiels paquets NPM maintenus ;
- effectuer une rotation de l'ensemble des secrets présents sur la machine.
De plus les fiches réflexes relatives à la compromission système peuvent être consultées [3][4].
Documentation
- [1] Billet de blogue de Postman du 24 novembre 2025 relatif à la compromission de certains paquets NPM https://blog.postman.com/engineering/shai-hulud-2-0-npm-supply-chain-attack/
- [2] Billet de blogue de PostHog du 25 novembre 2025 relatif à la compromission de certains paquets NPM https://status.posthog.com/incidents/kv3nj636f59c
- [3] Compromission système - Qualification https://www.cert.ssi.gouv.fr/fiche/CERTFR-2024-RFX-005/
- [4] Compromission système - Endiguement https://www.cert.ssi.gouv.fr/fiche/CERTFR-2024-RFX-006/
- Billet de blogue de Koi du 24 novembre 2025 relatif à la campagne Sha1-Hulud https://www.koi.ai/incident/live-updates-sha1-hulud-the-second-coming-hundred-npm-packages-compromised
- Billet de blogue de Wiz du 24 novembre 2025 relatif à la campagne Shai-Hulud 2.0 https://www.wiz.io/blog/shai-hulud-2-0-ongoing-supply-chain-attack
- Billet de blogue de Aikido du 24 novembre 2025 relatif à la campagne Shai Hulud https://www.aikido.dev/blog/shai-hulud-strikes-again-hitting-zapier-ensdomains
- Billet de blogue de Gitlab du 24 novembre 2025 relatif à la campagne Shai-Hulud https://about.gitlab.com/blog/gitlab-discovers-widespread-npm-supply-chain-attack/