Des failles débranchées dans les gestionnaires de paquets npm et fil pourraient permettre aux attaquants de contourner les défenses contre Shai-Hulud

Lucas Morel

Un chercheur de Koi Security affirme que les deux plates-formes clés n’ont pas corrigé les vulnérabilités permettant les attaques de vers, et que « l’écosystème JavaScript mérite mieux ».

Les développeurs Javascript devraient envisager de s’éloigner des plates-formes NPM et Yarn pour distribuer leur travail, car des failles nouvellement découvertes permettent aux acteurs malveillants de lancer des attaques de vers malveillants comme Shai-Hulud, explique un chercheur israélien.

L’avertissement vient d’Oren Yomtov de Koi Security, qui a blogué lundi sur la découverte de six vulnérabilités Zero Day dans plusieurs gestionnaires de paquets qui pourraient permettre aux pirates de contourner les défenses recommandées en novembre dernier après que Shai-Hulud ait parcouru npm et compromis plus de 700 paquets.

Ces défenses sont :

  • désactiver la possibilité d’exécuter des scripts de cycle de vie, des commandes qui s’exécutent automatiquement lors de l’installation du package,
  • enregistrer les vérifications d’intégrité du fichier de verrouillage (package-lock.json, pnpm-lock.yaml et autres) dans le contrôle de version (git). Le fichier de verrouillage enregistre la version exacte et le hachage d’intégrité de chaque package dans une arborescence de dépendances. Lors des installations suivantes, le gestionnaire de packages vérifie les packages entrants par rapport à ces hachages, et si quelque chose ne correspond pas, l’installation échoue. Si un attaquant compromet un package et diffuse une version malveillante, le contrôle d’intégrité doit détecter la non-concordance et empêcher son installation.

Ces recommandations « sont devenues les conseils standard partout, depuis les guides de sécurité GitHub jusqu’aux documents de politique d’entreprise » après novembre, explique Yomtov, « car si le code malveillant ne peut pas s’exécuter lors de l’installation et que votre arborescence de dépendances est épinglée, vous êtes couvert ».

Les conseils de novembre sont toujours valables, mais d’autres problèmes doivent être résolus

Ce conseil est toujours valable, a-t-il ajouté dans une interview par courrier électronique.

Cependant, les vulnérabilités qu’il a découvertes – baptisées PackageGate – qui permettent aux pirates de contourner ces deux défenses doivent être corrigées par toutes les plateformes, a-t-il déclaré.

Jusqu’à présent, les plates-formes pnpm, vlt et Bun ont résolu les trous de contournement, a déclaré Yomtov, mais npm et Yarn ne l’ont pas fait. Il recommande donc aux développeurs JavaScript d’utiliser pnpm, vlt ou Bun.

Il a ajouté que, dans tous les cas, les développeurs JavaScript devraient maintenir à jour le gestionnaire de packages JavaScript qu’ils utilisent pour garantir qu’ils disposent des derniers correctifs.

Déclaration de GitHub « déconcertante »

Microsoft, qui possède et supervise npm via GitHub, a renvoyé des questions sur les vulnérabilités à GitHub. Il a déclaré dans un communiqué : « Nous travaillons activement pour résoudre le nouveau problème signalé, car NPM recherche activement les logiciels malveillants dans le registre. » En attendant, il exhorte les développeurs de projets à adopter les recommandations de ce blog publiées après les attentats de Shai-Hulud.

La déclaration note également qu’en septembre dernier, GitHub a déclaré qu’il renforçait la sécurité de npm, notamment en apportant des modifications à l’authentification et à la gestion des jetons.

GitHub avertit également que si un package installé via git contient un script de préparation, ses dépendances et devDependencies seront installées. « Comme nous l’avons partagé lors du dépôt du ticket, il s’agit d’une conception intentionnelle et fonctionne comme prévu. Lorsque les utilisateurs installent une dépendance git, ils font confiance à l’intégralité du contenu de ce référentiel, y compris ses fichiers de configuration. « 

Yomtov a trouvé cette explication de la conception intentionnelle « déconcertante ».

Pas une image complète

Il affirme que la vulnérabilité de contournement des scripts a été signalée via le programme de primes de bugs HackerOne le 26 novembre 2025. Alors que d’autres gestionnaires de packages JavaScript ont accepté les rapports, npm a déclaré que la plate-forme fonctionnait comme prévu et que la commande « ignorer les scripts » devrait empêcher l’exécution de code distant non approuvé.

« Nous n’avons pas écrit cet article pour faire honte à qui que ce soit », a déclaré Yomtov sur le blog. « Nous l’avons écrit parce que l’écosystème JavaScript mérite mieux et parce que les décisions de sécurité doivent être basées sur des informations précises, et non sur des hypothèses sur des défenses qui ne tiennent pas le coup.

« Le conseil standard, désactiver les scripts et valider vos fichiers de verrouillage, vaut toujours la peine d’être suivi. Mais ce n’est pas une vision complète », a-t-il déclaré. « Jusqu’à ce que PackageGate soit entièrement résolu, les organisations doivent faire leurs propres choix éclairés en matière de risques. »

VulnérabilitésSécuritéJavascriptLangages de programmationDéveloppement de logicielsSystèmes de contrôle de versionsOutils de développement