La campagne ChainDrop expose le tensorlake en npm; version 0.5.144 retrait

Auteur: Publié 7 min de lectura 1 lecture

Les images de cet article ont été générées par intelligence artificielle. Notre méthode de publication

Un paquet de npm appelé tensorlake, un SDK dans TypeScript orienté vers les applications et les services de Tensorlake, a été engagé dans une campagne de chaîne d'approvisionnement liée à la famille d'attaque connue comme ChainDrop / Shai-Hulud. La version malveillante identifiée - 0.5.144 - a été retirée de l'enregistrement npm après une analyse indépendante suivie dans son contenu d'un crochet de pré-installation et de plusieurs artefacts destinés à voler des identifiants, exfilter des secrets, maintenir la persistance et exécuter le code à distance.

Les composants étudiés montrent que, pendant l'installation, le paquet était en cours d'exécution. trou de préinstallation qui a invoqué le fichier paquet / lib / setup.mjs. Ce démarrage a chargé un "chargeur" d'ofuscado qui a exécuté, sur le Bun d'exécution, la charge utile principale (paquet / lib / Math _ Symbol.js). Le comportement technique documenté comprend la collecte d'identifications de fichiers locaux et d'environnements CI, l'extraction de Kubernetes et HashiCorp Vault, l'installation du binaire HackBrowserData pour voler les données du navigateur, l'exfiltration d'informations chiffrées et les mécanismes de persistance qui permettent à l'attaquant de garder l'accès même si la dépendance est supprimée.

La campagne ChainDrop expose le tensorlake en npm; version 0.5.144 retrait
Image générée avec IA.

Parmi les types de secrets confirmés comme cible par les analyses sont npm et les jetons GitHub, les identifiants et les secrets AWS, les jetons et les identifiants Vault, les identifiants Kubernetes, les clés SSH, les fichiers .env, les portefeuilles cryptomoneda et les données d'application de messagerie. Des références aux fichiers de configuration associés aux agents IA et aux services d'assistants - par exemple, aux fichiers liés à Claude et à d'autres plateformes - ont également été identifiées, suggérant que l'acteur cherchait des informations utiles pour exploiter l'infrastructure IA ou les agents d'automatisation.

Le vecteur de propagation détecté combine deux capacités dangereuses: d'une part, le ver liste les paquets associés à l'identité du publicateur de la victime, génère un test de provenance (la provenance de Sigstore) et republie des versions engagées pour infecter d'autres victimes; d'autre part, il planifie les flux de travail des fausses actions de GitHub (chaînes similaires à Copilot / Dependabot) et écrit des fichiers tels que .claude / settings.json et .vscode / tâches. json en repos qu'il peut atteindre, de sorte que la charge malveillante soit réactivée dans un projet. L'utilisation d'un contrat Etheum pour résoudre un point final de commande et de contrôle (C2) et l'utilisation de dépôts publics dans GitHub comme mécanisme de repli pour tenir compte des données volées ont également été documentées.

Faits confirmés: la version 0.5.144 du paquet a été publiée puis retirée de l'enregistrement npm; le paquet contenait un crochet pré-install qui a activé les fichiers opussés et une charge utile basée sur Bun; malware recherché et exfiltré une large gamme de secrets, laissant des binaires connus (HackBrowserData) et des artefacts placés dans des dépôts; il y avait des commits malveillants au dépôt tensorlakeai / tensorlake et la première modification rapportée a été le 7 octobre 2026, selon une analyse publiée par des tiers. Ces résultats proviennent de rapports techniques publiés par les équipes d'intervention qui ont analysé la libération et les artefacts du dépôt.

Incognites et estimations: l'ampleur exacte de l'infection (nombre d'établissements ou d'organisations concernés) n'a pas été publiée de manière exhaustive; la portée des pouvoirs n'est pas réellement exploitée ou si l'agresseur a réussi à compromettre les comptes à impact élevé dans certaines entreprises publiquement confirmées. L'utilisation du moniteur « jeton d'hôte » qui exécute le code avec Invoke-Expression lorsqu'un jeton est révoqué a été observée dans les vagues précédentes et est considérée comme une tactique à haut risque; toutefois, l'impact destructeur réel de cette routine sur cette campagne, si elle a été exécutée, reste soumis à une enquête médico-légale dans les hôtes touchés.

Qui cela affecte - t - il? Principalement aux développeurs et aux organisations qui ont installé la version 0.5.144 du paquet tensorlake - directement ou transitivement - dans des environnements de développement, CI / CD, conteneurs ou images de base. Le vecteur est particulièrement critique dans les pipelines et les environnements automatisés avec des secrets montés dans le contexte de l'exécution (par exemple, les coureurs CI avec des jetons avec permissions, les conteneurs avec des identifiants de nuage ou les agents IA avec des clés stockées). Sont également à risque ceux qui publient des paquets npm avec la même identité de mainteneur, parce que le ver essaie de réutiliser ces identifiants pour diffuser des versions malveillantes.

Conséquences pratiques : l'exposition d'un jeton CI ou d'une clé AWS peut entraîner l'exfiltration de données, des déploiements non autorisés, des dépenses en nuage frauduleuses, l'usurpation de comptes de dépôt et le pivotement latéral au sein des réseaux d'entreprise. La persistance au niveau du dépôt et des workflows signifie que la simple élimination de la dépendance ne garantit pas l'éradication de l'acteur si l'acteur a laissé des artefacts dans le code ou a faussé la chaîne de distribution des paquets.

Mesures concrètes et immédiates qui devraient être prises par ceux qui ont installé la version compromise : d'abord, identifier si leur environnement contient la version 0.5.144 en examinant paquet.json, paquet-lock.json, fil.lock, pnpm.-lock.yaml et en exécutant des commandes d'inspection sur les projets et les serveurs de construction (par exemple, npm ls tensorlake ou grep à l'aide de fichiers de verrouillage). Si la version malveillante apparaît, retirez-la immédiatement et isolez les hôtes où l'appareil a été installé.

Deuxièmement, faire tourner toutes les références potentiellement exposées : révoquer et rééditer npm et GitHub jetons, clés et rôles AWS, références Vault, comptes de service Kubernetes et toute clé SSH qui pourrait avoir résidé dans ces environnements. Ne pas simplement les faire tourner une fois : chaque secret qui a pu être accessible au processus infecté devrait être considéré comme compromis et remplacé.

Troisièmement, effectuer des recherches médico-légales : rechercher des fichiers et des processus qui correspondent au paquet / lib / setup.mjs ou au paquet / lib _ Symbol.js, détecter les binaires HackBrowserData, examiner les tâches cron, services et programmées, et vérifier les dépôts et les actions GitHub à la recherche de flux de travail non autorisés ou d'engagements suspects (y compris les fichiers .claude / settings.json et .vscode / tasks.json). Isolez et conservez les preuves avant le nettoyage pour permettre une enquête plus approfondie.

La campagne ChainDrop expose le tensorlake en npm; version 0.5.144 retrait
Image générée avec IA.

Quatrièmement, hygiéniser les images et les coureurs : reconstruire les conteneurs et les images d'origines fiables, ne pas réutiliser les artefacts binaires qui ont été dans des environnements compromis et régénérer les compétences associées aux coureurs et aux agents. Dans les pipelines, évitez de monter des secrets dans des contenants à texte plat et préférez les mécanismes temporaires et rotatifs (p. ex., les pouvoirs à court terme ou les mécanismes OIDC lorsque c'est possible).

Enfin, au niveau de l'organisation, effectuer un balayage de l'unité à travers la flotte de dépôts et de machines, activer la détection des comportements anormaux sortants (connections à des domaines suspects tels que iseekaigogo [.] com), et renforcer les contrôles de publication des paquets (examens humains dans les rejets, restriction des permis de publication et utilisation des signatures vérifiables d'objets). Pour mieux comprendre les garanties de provenance et d'atténuation des abus dans les signatures, voir la documentation Sigstore : https: / / sigstore.dev. Pour vérifier l'existence et l'état du paquet concerné et son historique dans le registre, voir la page npm: https: / / www.npmjs.com / package / tensorlake et le dépôt associé dans GitHub: https: / / github.com / tensorlakeai / tensorlake.

Cette intrusion est une nouvelle itération de la tendance observée depuis août 2026 par laquelle les acteurs attaquent la chaîne d'approvisionnement JavaScript et étendent maintenant l'attention à l'infrastructure IA et aux agents automatisés. La leçon opérationnelle est claire : la simple présence d'une unité dans les modules nœud _ peut être un vecteur d'engagement lorsque cette unité exécute du code dans les crochets d'installation ou dans les pipelines avec des permissions étendues. Examiner les politiques de publication, minimiser les privilèges dans les jetons d'IC et mettre en place une détection secrète dans les dépôts sont des mesures qui réduisent considérablement le risque qu'un incident semblable s'étende au sein d'une organisation.

Couverture

Autres

Plus de nouvelles sur le même sujet.