Skip to content

Back to the catalog

tensorlake NPM package compromised with Shai Hulud worm
aikido.devwriteup

tensorlake NPM package compromised with Shai Hulud worm

Aikido details a new Shai-Hulud worm wave that compromised the tensorlake npm package (v0.5.144, 100k+ lifetime installs) via a hijacked GitHub maintainer identity. The malware's preinstall script drops the Bun runtime to run an obfuscated payload that exfiltrates CI/cloud secrets, browser crypto-wallet extension data (via a bundled HackBrowserData binary), uses a blockchain dead-drop (an Ethereum contract queried via public RPC nodes) to resolve a fallback C2, and includes a GitHub-token-triggered dead-man's switch that wipes infected machines. The post includes full IOCs: file hashes, the C2 domain iseekaigogo[.]com, and the threat actor's wallet/contract addresses.

TL;DR A new Shai-Hulud worm variant compromised the tensorlake npm package, stealing secrets and crypto-wallet data via a blockchain-resolved C2 and a GitHub-token dead-man's switch.
Document

What it is

The tensorlake npm package compromise (v0.5.144, ~100k lifetime installs) by a Shai-Hulud worm variant, published 8 October 2026. Tensorlake also ships packages via PyPI and Cargo, but neither shows signs of compromise as of writing.

How it works

The threat actor made verified commits under a hijacked maintainer identity on 7 October, introducing the malware in commit 41b38f0 via direct file upload, then bumping the version and triggering npm publish roughly 20 hours later. The preinstall script runs node lib/setup.mjs, which drops the Bun runtime and uses it to execute lib/Math_Symbol.js, the obfuscated Shai-Hulud payload. The payload sets a global WORMTAG marker specific to this tensorlake compromise — a sign this is a novel infection rather than reinfection from a prior Shai-Hulud wave. Compared to earlier waves, this variant is more oriented toward quick monetization than supply-chain spread: it targets 14 hardcoded cryptocurrency browser-extension paths, exfiltrating IndexedDB/LevelDB files, and fetches a platform-appropriate HackBrowserData binary from the C2 to pull additional browser-stored credentials.

flowchart TD
    A[npm install triggers preinstall] --> B[setup.mjs drops Bun runtime]
    B --> C[Bun executes Math_Symbol.js payload]
    C --> D[Set WORMTAG marker]
    C --> E[Exfiltrate CI/cloud secrets + browser crypto data]
    C --> F[Query Ethereum contract for fallback C2]
    F -->|resolves to| G[iseekaigogo.com]
    C --> H{GitHub token revoked?}
    H -->|yes| I[Dead-man's switch wipes machine]

Preconditions / Affected

Any system that installed tensorlake 0.5.144 via npm. PyPI and Cargo distributions of tensorlake are not reported as affected.

What to do

  • Treat any system that installed tensorlake@0.5.144 as fully compromised; rotate all secrets/credentials it had access to as a critical priority.
  • Check for the IOC file hashes: lib/setup.mjs (sha256 25a0735d0db7dc40e5d45ce42d9c106067e6a66e184d967cfecfab17c3bcb5ef) and lib/Math_Symbol.js (sha256 b50a00900399ba99fb6ce1fc151519cb99d44320ef2a631f2237e1aea0ad6fec).
  • Block/alert on C2 domain iseekaigogo[.]com.
  • Aikido users: filter the central feed on malware issues (surfaces as a 100/100 critical issue) and trigger a manual rescan rather than waiting for the nightly scan.

Caveats

The post states the malware "contains slight variations from the last Shai-Hulud wave," which they infer indicates a novel compromise rather than ongoing reinfection — this is their interpretation, not a confirmed attribution.

Organisations named here

  • 0x779f83aE56309682beDb04816c19d358c4B21040
  • 0xb614155Fd88114d40549b259457Bcf921Df091B9
  • iseekaigogo[.]com
  • Shai-Hulud
  • WORMTAG

Technologies named here

  • tensorlake
  • Aikido
  • Aikido Device Protection
  • Aikido Safe Chain
  • HackBrowserData
  • Bun
  • npm
  • Ethereum
  • PyPI
  • Cargo
  • GitHub

Techniques named here

  • Supply chain compromise via npm package
  • Compromised maintainer credentials / verified commits
  • Preinstall script execution
  • Obfuscated script dropping secondary runtime
  • Self-replication/worm proliferation
  • Environment variable and secrets exfiltration
  • Browser extension data theft
  • Remote credential-harvesting binary execution
  • Dead-man's switch / destructive wipe
  • Blockchain dead-drop resolver for C2

Threat actors named here

  • Shai-Hulud worm