Direct naar de inhoud
Cybersecurity

Tensorlake npm-compromis: credential-worm dreigt

Tensorlake npm-compromis

Het Tensorlake npm-compromis laat opnieuw zien hoe snel een supply chain-aanval kan doorsijpelen in ontwikkelomgevingen. Security-onderzoekers melden dat een gecompromitteerde npm-release van de Tensorlake SDK niet alleen kwaadaardige code bevat, maar ook is ontworpen om te stelen, zichzelf voort te zetten en toegang vast te houden.

De besmette versie werd via een keten van stappen gepubliceerd onder een maintainer-naam. Wie de package al heeft geïnstalleerd, moet daarom direct actie ondernemen: verwijder de dependency, roteer getroffen credentials en kijk extra kritisch naar wat er in CI/CD en ontwikkeltools is gebruikt.

Wat is er precies mis bij het Tensorlake npm-compromis?

De getroffen npm-package heet tensorlake en functioneert als TypeScript SDK voor Tensorlake-toepassingen, sandbox- en cloudservices. De onderzoekers koppelen de aanval aan een ChainDrop-/Shai-Hulud supply chain-aanpak, waarbij malware via een ogenschijnlijk legitieme dependency wordt verspreid.

Concreet gaat het om een gemanipuleerde release: versie 0.5.144. Die bevat een obfuscated malwarecomponent die onder meer credentials harvest, secrets exfiltreert, host-persistentie instelt en vervolgens remote code kan uitvoeren die op een later moment wordt aangeleverd.

De schadelijke versie is intussen niet meer beschikbaar via de npm-registry, maar dat betekent niet dat wie eerder heeft geïnstalleerd veilig is. Paketten kunnen immers al in lockfiles, builds of deploy-pijplijnen zijn terechtgekomen.

Hoe werkt de malware: van preinstall tot credential-worm

De analyse beschrijft een aanvalsketen binnen de package zelf. De malware gebruikt een preinstall hook die bij installatie een JavaScript-file start. Daarna wordt via een obfuscated loader een hoofdcomponent opgestart die is ontworpen om te oogsten, te verspreiden en opnieuw te draaien.

Het verdacht gedrag verloopt via een JavaScript payload die draait met de Bun runtime. Vanaf daar richt de worm zich op het verzamelen van waardevolle gegevens in meerdere omgevingen.

Welke credentials en data worden gestolen?

Volgens de onderzoekers richt de stealer zich niet op één enkel token. Juist de combinatie vergroot het risico: alles wat door het uitvoerende proces toegankelijk is, kan worden blootgelegd.

De gemelde datacategorieën omvatten onder andere:

  • npm tokens
  • GitHub tokens
  • AWS-credentials en -secrets
  • HashiCorp Vault
  • Kubernetes-credentials
  • SSH-sleutels
  • .env-bestanden
  • Cryptocurrency wallets
  • Data van messaging-apps
  • Daarnaast ook configuratiebestanden en MCP-bestanden gerelateerd aan AI-tools zoals Anthropic Claude, Cursor, Kiro, Windsurf en Zed

Een opvallend detail is dat de malware ook een binaire component afzet (genoemd als HackBrowserData), vervolgens de verzamelde data exfiltreert en daarna probeert persistence op de host te installeren.

Persistente toegang: waarom alleen “verwijderen” niet genoeg is

Een supply chain-incident is gevaarlijk omdat het niet altijd ophoudt bij het installeren van de dependency. In deze casus schrijft de malware bestanden naar repositories die ze kan bereiken.

Daarbij gaat het om bestanden zoals .claude/settings.json en .vscode/tasks.json. Het gevolg: de kwaadaardige routine kan opnieuw starten wanneer iemand het project opent in tools zoals Claude Code of VS Code. Daarmee ontstaat het risico dat de aanvalcyclus opnieuw wordt getriggerd, ook nadat je de originele package al hebt verwijderd.

Daar komt bij dat de malware een mechanisme bevat om later (op aanvraag) remote code uit te voeren. Daardoor blijft de impact langer relevant dan alleen de installfase.

Hoe verspreidt de worm zich via publishing- en CI-sporen?

De onderzoekers beschrijven dat de worm de pakketten opsomt die gekoppeld zijn aan de publicatie-identiteit van het slachtoffer. Vervolgens maakt hij Sigstore-provenance en publiceert hij gecompromitteerde varianten opnieuw.

Ook zijn er aanwijzingen dat de malware GitHub Actions-workflows kan planten. In de beschreven strings komen verwijzingen voor naar een fake Copilot/Dependabot-workflow. Dat kan betekenen dat aanvallen niet alleen op ontwikkelaarsmachines mikken, maar ook op geautomatiseerde build- en verificatiestromen.

Command-and-control en een “hostage token”-mechanisme

Voor de command-and-control (C2) beschrijven onderzoekers een set technische omwegen. Zo wordt de C2-endpoint vastgesteld via een Ethereum-contract. GitHub kan daarbij functioneren als fallback om gestolen data versleuteld te stagen in een openbare repository.

Daarnaast is er een component die de onderzoekers “hostage token” noemen. Dat deel gebruikt een PowerShell-monitor die herhaaldelijk controleert of een GitHub-token nog geldig is door api.github.com/user op te vragen met het gestolen token.

Wanneer een slachtoffer de stap zet om het token te revoken, gaat de monitor volgens de analyse door. Vervolgens kan een attacker-supplied handler worden uitgevoerd via Invoke-Expression om PowerShell-code uit te voeren die mogelijk een destructieve routine triggert. Dit patroon past bij eerdere waarnemingen rondom Shai-Hulud-golven.

Wat kun je nu doen als je tensorlake gebruikte?

De aanbeveling van de onderzoekers is duidelijk: wie de malafide versie heeft geïnstalleerd, moet direct verwijderen en credentials roteren. Hieronder staan praktische stappen die passen bij de beschreven risico’s (stelen uit CI, local files en secrets):

  • Verwijder tensorlake uit je dependencies en controleer lockfiles en buildscripts.
  • Rotate tokens en secrets die relevant zijn voor de omgevingen waar de package draaide (npm, GitHub, AWS, Vault, Kubernetes, SSH en .env).
  • Check CI/CD jobs en build-artefacten: is er een workflow gebruikt die secrets beschikbaar stelde tijdens install of build?
  • Controleer repositories op sporen zoals nieuwe of gewijzigde configuratiebestanden die passen bij persistence (bijvoorbeeld .claude/settings.json en .vscode/tasks.json).
  • Inspecteer npm publicatiegedrag en GitHub acties: zijn er workflows, commits of releases toegevoegd die je niet herkent?

Wil je extra context over hoe dit soort aanvallen via ontwikkelketens kan doorwerken? Lees dan ook eens MALFEX npm-malware: 40.767 downloads en RAT, waar dezelfde denkfout—“het is maar een npm-pakket”—centraal staat.

Waarom dit incident verder gaat dan één gestolen sleutel

De kern van het Tensorlake npm-compromis is dat het niet alleen om één credential draait. De malware is ingericht om breed te verzamelen (local files, CI, cloud- en vaultbronnen), vervolgens data te exfiltreren en daarna weer toegang te behouden via persistence.

Bovendien kan de worm zich richten op de publicatie-identiteit van het slachtoffer. Dat betekent: als een organisatie toegang heeft tot publishen, kan de supply chain-impact uitbreiden naar andere projecten en teams die later afhankelijk worden van opnieuw gepubliceerde varianten.

Daarom is een snelle incidentrespons niet alleen technisch (dependency weg, creds roteren), maar ook organisatorisch: identificeer waar de package is gebruikt en wie rechten had tijdens installatie, build en deployment.

Conclusie

Het Tensorlake npm-compromis bevestigt dat aanvallers steeds vaker ontwikkeltools en AI-gerelateerde infrastructuur benutten om waardevolle secrets te bemachtigen. De gemanipuleerde versie 0.5.144 bevat een obfuscated worm die credentials oogst, persistence opbouwt en remote code kan uitvoeren.

Verwijder de dependency, roteer getroffen tokens en controleer CI/CD en repositorybestanden op sporen van persistence of ongewenste workflows. Alleen zo voorkom je dat een supply chain-infectie blijft rondwaren, zelfs nadat de schadelijke npm-versie al uit je stack is gehaald.

Bron: https://thehackernews.com/2026/10/tensorlake-npm-package-compromised-to.html