La société de sécurité Koi a découvert une campagne appelée PhantomRaven qui a inondé le registre NPM de 126 paquets malveillants depuis août. Ces paquets, téléchargés plus de 86 000 fois, exploitent une fonctionnalité permettant des dépendances non vérifiées provenant de sites non fiables. Fin octobre 2025, environ 80 de ces paquets étaient encore disponibles.
Les attaquants ont exploité une vulnérabilité dans le dépôt de paquets NPM, téléchargeant plus de 100 paquets volants de credentials depuis août 2025, selon Koi, une société de sécurité. La campagne, suivie sous le nom de PhantomRaven, a utilisé la fonctionnalité Remote Dynamic Dependencies (RDD) de NPM pour distribuer 126 paquets malveillants. Ce mécanisme permet aux paquets de télécharger et d'exécuter automatiquement du code provenant de domaines non fiables, y compris des sites HTTP non chiffrés, contournant les vérifications de sécurité habituelles.
« PhantomRaven démontre comment les attaquants sophistiqués s'améliorent [dans l'exploitation] des points aveugles des outils de sécurité traditionnels », a écrit Oren Yomtov de Koi. « Les dépendances dynamiques à distance ne sont pas visibles pour l'analyse statique. » Contrairement aux dépendances standard, qui sont visibles et sourcées de l'infrastructure fiable de NPM, RDD extrait du code 'invisible' que les scanners manquent souvent. Les paquets malveillants semblaient avoir '0 Dépendances' mais récupéraient des versions nocives depuis des URL contrôlées par les attaquants, comme http://packages.storeartifact.com/npm/unused-imports.
Ces dépendances sont téléchargées fraîches à chaque installation, sans mise en cache ni versionnage, permettant des attaques ciblées potentielles. Les attaquants pourraient adapter les charges utiles en fonction des adresses IP — servant du code bénin aux chercheurs tout en livrant du malware aux réseaux d'entreprise — ou retarder le comportement malveillant pour échapper à la détection. Les données volées incluent les variables d'environnement, les credentials GitHub, Jenkins et NPM, ainsi que des détails des environnements d'intégration et de livraison continue. L'exfiltration se produit de manière redondante via des requêtes HTTP, JSON et Websockets.
De nombreux noms de paquets imitent ceux 'hallucinés' par les chatbots IA, exploitant la dépendance des développeurs à ces outils pour les suggestions de dépendances. Les représentants de NPM n'ont pas répondu aux demandes d'information sur cette pratique. Koi conseille de consulter leur publication pour les indicateurs de compromission afin de scanner les systèmes affectés.