Threat Advisories

Attaque de la chaîne d'approvisionnement npm se propageant d'elle-même et ciblant les tokens des développeurs

Rédigé par Integrity360 | 22 avr. 2026 15:34:03

Une nouvelle attaque active de la chaîne d'approvisionnement npm a été observée. Elle utilise les informations d'identification compromises des responsables pour propager un code malveillant dans les paquets de l'écosystème Node.js. Le logiciel malveillant vole des éléments d'authentification (jetons npm, identifiants cloud, secrets CI/CD, clés SSH et données de portefeuille) et utilise les jetons de publication découverts pour s'injecter dans d'autres paquets appartenant au même responsable, créant ainsi une propagation latérale de type ver.

La campagne a été identifiée par Socket et StepSecurity et affecte plusieurs paquets publiés par Namastex Labs, avec au moins 16 paquets compromis confirmés au moment de la rédaction du rapport. En raison de son modèle de propagation basé sur les informations d'identification, le rayon d'action peut s'étendre rapidement dans les environnements où les développeurs ou les systèmes de CI conservent des autorisations de publication.

Compromission initiale et exécution de la charge utile

Le code malveillant a été injecté dans des paquets npm légitimes et s'exécute automatiquement lorsque le paquet est installé. Une fois en cours d'exécution, la charge utile procède à une découverte secrète approfondie du système hôte, en recherchant les éléments suivants

    • les jetons de publication npm
    • clés d'API (fournisseurs de cloud, registres, plateformes LLM)
    • clés SSH et identifiants CI/CD
    • les fichiers de configuration Kubernetes et Docker
    • Secrets stockés dans les navigateurs Chrome et Firefox, y compris les portefeuilles de crypto-monnaie (MetaMask, Exodus, Atomic Wallet, Phantom).

Mécanisme de propagation

Si le logiciel malveillant trouve des identifiants de publication npm valides (par exemple, via des variables d'environnement ou ~/.npmrc), il.. :

    • énumère tous les paquets npm que le jeton compromis est autorisé à publier
    • Injecte la même charge utile malveillante dans ces paquets.
    • les republie avec des numéros de version incrémentés
    • permet une infection récursive lorsque les développeurs en aval installent les nouvelles versions.

Les chercheurs décrivent explicitement le logiciel malveillant comme un "ver de la chaîne d'approvisionnement" capable de se propager de manière autonome sans autre intervention de l'attaquant une fois les informations d'identification obtenues.

Risque inter-écosystèmes

Si les informations d'identification PyPI sont découvertes sur le même système, le logiciel malveillant tente de compromettre les paquets Python à l'aide d'un mécanisme de persistance basé sur .pth. L'attaque s'étend ainsi au-delà de JavaScript, ce qui en fait une menace pour la chaîne d'approvisionnement de plusieurs écosystèmes.

Paquets affectés confirmés

Au moment de la publication, les paquets et versions suivants ont été confirmés comme étant malveillants et doivent être considérés comme entièrement compromis :

    • @automagik/genie (4.260421.33–4.260421.39)
    • pgserve (1.1.11-1.1.13)
    • @fairwords/websocket (1.0.38-1.0.39)
    • @fairwords/loopback-connector-es (1.4.3-1.4.4)
    • @openwebconcept/theme-owc@1.0.3
    • @openwebconcept/design-tokens@1.0.3

Ces paquets sont couramment utilisés dans les outils d'agents d'intelligence artificielle et les services de données dorsaux, ce qui augmente la valeur des environnements compromis.

Impact

    • Vol d'informations d'identification conduisant à la compromission du cloud, de CI/CD et du référentiel.
    • Publication non autorisée de paquets malveillants supplémentaires
    • Compromission en aval des applications dépendantes
    • Perte de propriété intellectuelle et de secrets
    • Vol de portefeuilles de crypto-monnaies dans les environnements de développement

Indicateurs de compromission

Les organisations doivent enquêter sur les points suivants :

    • Mises à jour inattendues de la version d'un paquet npm sans justification de changement correspondant en amont.
    • Publications non autorisées à partir de comptes de responsables
    • accès aux jetons npm en dehors des flux de travail CI/CD prévus
    • Présence de scripts inconnus ou de JavaScript obscurci dans les dépendances
    • Connexions sortantes suspectes des pipelines de construction après les installations npm

La cadence de republication rapide (plusieurs versions malveillantes publiées en l'espace de quelques heures) est un indicateur comportemental notable dans cette campagne.

Mesures d'atténuation recommandées

    • Supprimer toutes les versions de paquets malveillants identifiées dans les environnements et les pipelines.
    • Rotation de tous les secrets potentiellement exposés sur les systèmes affectés (npm, GitHub, cloud, CI/CD)
    • Révoquer les jetons de publication npm et les réémettre avec une portée minimale.
    • Auditer l'historique des publications pour tous les comptes de mainteneurs
    • Auditer les paquets liés avec le même fichier public.pem, le même hôte webhook, ou le même modèle de post-installation.

Si vous êtes préoccupé par l'une des menaces décrites dans ce bulletin ou si vous avez besoin d'aide pour déterminer les mesures à prendre pour vous protéger contre les menaces les plus importantes auxquelles votre organisation est confrontée, veuillez contacter votre gestionnaire de compte ou prendre contact avec nouspour savoir comment vous pouvez protéger votre organisation.