Selon GitHub Blog (Xavier René‑Corail, 22 septembre 2025), l’écosystème open source a subi une vague de prises de contrôle de comptes sur des registres de paquets, dont npm, culminant avec une attaque baptisée Shai‑Hulud ciblant la chaîne d’approvisionnement JavaScript.

🚨 Incident: le 14 septembre 2025, Shai‑Hulud a infecté l’écosystème npm via des comptes mainteneurs compromis, en injectant des scripts post‑install malveillants dans des paquets populaires. Le ver était auto‑réplicant et capable de voler plusieurs types de secrets (pas uniquement des jetons npm), ce qui aurait pu permettre des attaques en continu sans l’intervention rapide de GitHub et de mainteneurs open source.

🛡️ Réponse immédiate: GitHub a supprimé plus de 500 paquets compromis du registre npm et bloqué l’upload de nouveaux paquets contenant les IoCs du malware, interrompant ainsi le schéma de propagation.

🔐 Feuille de route de durcissement npm:

  • Modes d’authentification/publication à venir: publication locale avec 2FA obligatoire, jetons granulaires à durée de vie limitée à 7 jours, et trusted publishing.
  • Mesures complémentaires:
    • Déprécation des tokens classiques.
    • Déprécation du TOTP pour le FIDO/WebAuthn en 2FA.
    • Réduction de l’expiration des jetons granulaires avec permission de publier.
    • Désactivation par défaut de la publication via tokens, au profit du trusted publishing ou de la 2FA locale.
    • Suppression de l’option de contournement de la 2FA pour la publication locale.
    • Extension des fournisseurs éligibles au trusted publishing.

🤝 Écosystème et bonnes pratiques: GitHub rappelle que le trusted publishing (recommandé par l’OpenSSF) élimine la gestion de jetons dans les pipelines. Lancé par PyPI (avril 2023), il a été adopté par RubyGems (déc. 2023), crates.io (juil. 2025), npm (juil. 2025) et NuGet (sept. 2025). GitHub encourage fortement une adoption rapide sur tous les gestionnaires pris en charge.

✅ Actions immédiates pour les mainteneurs npm:

  • Utiliser le trusted publishing npm au lieu des tokens.
  • Exiger la 2FA pour toute écriture et publication sur comptes/orgs/paquets.
  • Préférer WebAuthn plutôt que TOTP pour la 2FA.

TTPs observés:

  • Prise de contrôle de comptes de mainteneurs.
  • Injection de scripts post‑install malveillants dans des paquets populaires.
  • Auto‑réplication du malware au sein de l’écosystème de paquets.
  • Vol de secrets multi‑types (au‑delà des jetons npm).

Type d’article: billet du GitHub Blog combinant rapport d’incident et annonce de mesures de durcissement de la sécurité de npm.


🔗 Source originale : https://github.blog/security/supply-chain-security/our-plan-for-a-more-secure-npm-supply-chain/

🖴 Archive : https://web.archive.org/web/20250923194937/https://github.blog/security/supply-chain-security/our-plan-for-a-more-secure-npm-supply-chain/