Ajoutez les clés de passe si vous voulez, mais ne supprimez pas le TOTP.
Cette demande est emblématique de la friction que GitHub a engendrée avec son dernier train de mesures de sécurité pour npm.
Il avait annoncé la couleur fin septembre 2025, dans la lignée d’une attaque d’ampleur sur le gestionnaire de paquets. Dans un horizon de quelques semaines, les tokens « classiques » (legacy) seraient supprimés. Quant aux tokens granulaires avec des permissions en écriture, ils ne pourraient plus avoir une durée de vie illimitée. Mi-octobre, celle-ci passerait à 90 jours maximum… et à 7 jours par défaut (contre 30 auparavant).
Le timing pour supprimer TOTP était (beaucoup) trop court
GitHub prévoyait aussi qu’à échéance de « quelques mois », l’authentification forte par code TOTP ne soit plus disponible. Il le justifiait essentiellement par la vulnérabilité du protocole au phishing et aux attaques par relais. Risques auxquels, expliquait-il, les clés de passe ne sont pas exposées, même si le générateur lui-même est compromis.
Dans la communauté npm, on lui a fait remarquer que l’approche passkey n’était pas idéale pour les systèmes automatisés. Et que finalement, il était bien pratique de pouvoir publier depuis le terminal sans avoir à s’authentifier dans un navigateur. Certains furent plus offensifs, invoquant un verrouillage (« Les clés de passe ne sont pas si portables »…).
Au bout du compte, GitHub a maintenu le cap… mais a remis les choses à bien plus tard. En février, il expliquait encore ne pas avoir l’intention de supprimer le TOTP avant que le reste de ses mesures de sécurité aient été largement adoptées.
Des tokens finalement un peu moins éphémères
La suppression des tokens classiques fut elle aussi repoussée à plusieurs reprises. Elle est finalement intervenue début décembre. S’y sont substitués, pour la publication locale, des tokens éphémères, initialement valables 2 heures. Interpellé sur les contraintes que cela représentait, GitHub a fini par élargir la fenêtre à 12 heures. Non sans recommander de limiter ces tokens à la publication et d’utiliser des tokens granulaires en lecture seule pour l’accès continu aux paquets privés.
Parallèlement au plafonnement de la durée de vie des tokens granulaires avec droits en écriture, le paramétrage standard des paquets a évolué. À leur création, le 2FA s’active par défaut, conditionnant toute publication.
GitHub serre la vis sur les scripts install
La dernière mesure annoncée s’appliquera à partir de npm v12, attendu pour juillet (elle émet pour le moment des alertes). Elle désactive, par défaut, l’exécution des scripts preinstall, install et postinstall depuis des dépendances. Cela inclut les builds node-gyp natifs (qui exécutent un node-gyp rebuild implicite). Attention donc à des paquets comme bcrypt, canvas, sharp et les pilotes de bases de données. Ainsi qu’à Cypress, Playwright et Pupeteer, mais pour une autre raison : ils téléchargent des binaires via postinstall.
Un autre comportement disparaîtra par défaut : la résolution des dépendances depuis des URL distantes (–allow-remote), y compris les tarballs https. La même chose s’applique depuis février à la résolution de dépendances Git directes ou transitives (–allow-git). Elle bloque un vecteur d’exécution de code (le .npmrc d’une dépendance Git pouvant passer outre l’exécutable, même avec –ignore-scripts).
Pour le moment, GitHub n’annonce pas de changement de comportement pour les drapeaux –allow-file et –allow-directory.
Le trusted publishing, en manque de fournisseurs CI/CD
La suppression de TOTP dépendra probablement aussi de la diffusion du trusted publishing. Cette fonctionnalité implémente un standard défini par l’OpenSSF. Elle utilise l’authentification OIDC pour créer une relation de confiance entre npm et des fournisseurs CI/CD. PyPi fut le premier gestionnaire de paquets à l’adopter, en 2023. Sur npm, elle est disponible depuis juillet 2025, mais ne gère encore que trois services :
GitHub Actions (exécuteurs managés)
GitLab CI/CD (exécuteurs partagés)
CircleCI (version cloud)
L’édition par lots des configurations trusted publishing est relativement récente (février 2026). La détection des malwares dans les dépendances avec Dependabot l’est encore plus (mars)… en tout cas dans sa nouvelle incarnation. GitHub avait suspendu la précédente en 2022, en raison du volume de faux positifs dus officiellement à des conflits de nommage entre des paquets publics et privés.
Illustration générée par IA
The post La sécurité de npm, un jeu d’équilibriste pour GitHub appeared first on Silicon.fr.