← L'édition
DevNouveau2 min de lecture

Sécurité npm : quand le registre modifie les paquets sans l'intervention des mainteneurs

Une analyse alerte sur les risques majeurs pesant sur les registres de paquets comme npm et leur impact direct sur la sécurité des chaînes de déploiement. Le 15 septembre 2025, un événement inédit a vu des paquets se mettre à jour sans aucune commande de publication ni modification manuelle des développeurs.

Fil « Risques de sécurité de la chaîne d'approvisionnement sur les registres de paquets »

Un comportement inédit sur le registre central npm

Le 15 septembre 2025, le registre npm (Node Package Manager, le dépôt centralisé des bibliothèques JavaScript et TypeScript) a fait face à une situation sans précédent : des paquets ont commencé à se mettre à jour de manière autonome. La particularité de cet événement réside dans le fait qu'aucun mainteneur n'a exécuté la commande d'envoi npm publish, et qu'aucune pull request (proposition de modification de code soumise à révision) n'a été créée ou validée.

Cet incident illustre une vulnérabilité critique de la chaîne d'approvisionnement logicielle (supply chain, l'ensemble des dépendances externes intégrées dans un projet). Il rappelle que la sécurité d'une application ne dépend pas uniquement du code écrit par l'équipe, mais aussi de l'intégrité de la plateforme qui héberge ses bibliothèques tiers.

Vos pipelines CI/CD directement ciblés

Lorsqu'une anomalie ou une prise de contrôle survient au niveau du registre lui-même, l'impact sur les pipelines CI/CD (Continuous Integration / Continuous Deployment, les chaînes automatisées de compilation, de test et de déploiement) est immédiat. Les mécanismes traditionnels de revue de code sont complètement contournés si le paquet altéré est injecté directement à la source de la distribution.

Whoever controls your package registry controls your pipeline.

Les bonnes pratiques à appliquer dans vos chaînes de build

Pour protéger vos projets Node.js ou Java face aux défaillances des registres distants, plusieurs mesures techniques permettent de réduire l'exposition :

  • Verrouiller impérativement les versions : exploiter les fichiers de verrouillage (lockfiles comme package-lock.json) et vérifier scrupuleusement leurs empreintes cryptographiques (hashes).
  • Bloquer les scripts à l'installation : désactiver les exécutions automatiques de code au téléchargement des paquets en utilisant des drapeaux de sécurité lors du build.
  • Utiliser un registre proxy d'entreprise : faire passer les dépendances par un dépôt interne qui met en cache les paquets validés et empêche la récupération directe de mises à jour non contrôlées.
# Exemple de commande d'installation sécurisée en environnement CI
npm ci --ignore-scripts