
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.
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.144as fully compromised; rotate all secrets/credentials it had access to as a critical priority. - Check for the IOC file hashes:
lib/setup.mjs(sha25625a0735d0db7dc40e5d45ce42d9c106067e6a66e184d967cfecfab17c3bcb5ef) andlib/Math_Symbol.js(sha256b50a00900399ba99fb6ce1fc151519cb99d44320ef2a631f2237e1aea0ad6fec). - 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
Related in Supply Chain


