VDB
KO

MAL-2026-11133

Malicious code in chain-analyze (npm)

Details

--- _-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (eb22a3b9c64598bc202456844105c3e3e7f7e7185abe335b2694d85deb1b6c9d) The published tarball's dist bundles (dist/sigchain-js.cjs.js, dist/sigchain-js.esm.js, dist/sigchain-js.umd.js) execute at module load: they read an encrypted blob from the sibling dependency 'chain-manager' (either imported as `desKey` or read from a file under node_modules/chain-manager via fs.readFileSync), DES-decrypt it with a hardcoded PASSWORD, then invoke child_process.spawn('node', [], { detached: true,... }) and pipe the decrypted script into the child's stdin — running attacker-controlled Node.js code on the installer's machine on any require()/import of the package. The dropper code is present only in dist/; the src/ tree contains no reference to 'chain-manager' or to spawn('node'), and package.json's declared main 'dist/chain-analyze.cjs.js' is not shipped — only the tampered dist/sigchain-js.* bundles are, so consumers resolve to the malicious build while source reviewers see a clean Theta blockchain SDK. package.json declares author 'Theta Labs' and describes itself as a JavaScript library for the Theta blockchain, impersonating the official @thetalabs/theta-js SDK, and pins 'chain-manager' ^1.0.9 which supplies the encrypted payload — a split-package design that hides the executable code from scanners inspecting only this tarball.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm / chain-analyze

No fixed version published yet for chain-analyze (npm). Pin to a known-safe version or switch to an alternative.

References