LWA-2026-11639 confirmed malware

zenntechinc-cli@1.6.4

Malicious code in zenntechinc-cli (npm)

T1059.007 · JavaScriptT1105 · Ingress Tool TransferT1071.001 · Web ProtocolsT1573 · Encrypted ChannelT1102 · Web Service

Analysis

The zenntechinc-cli package ships a backend project template whose .eslintrc.js file contains a legitimate ESLint config followed by an appended obfuscated payload. The payload is a blockchain-based command-and-control dropper: it queries public Ethereum RPC endpoints (hxxps://1rpc[.]io/eth, hxxps://ethereum-rpc[.]publicnode[.]com, hxxps://eth-mainnet[.]publicnode[.]com, hxxps://eth[.]drpc[.]org) and an Etherscan-style indexer API to scan blocks for a transaction from a hardcoded sender address, then decodes the transaction's recipient address into two IPv4 addresses. It connects to hxxp://<decoded-ip>/0x/ls and hxxp://<decoded-ip>/0x/cl on those addresses, fetches XOR-encrypted second-stage payloads, decrypts them, and executes them both via eval() and by spawning a detached 'node -e <payload>' process. The C2 server IP is hidden in an on-chain Ethereum transaction, making the channel covert. The payload is copied into every project generated by the CLI and executes when the generated project loads its ESLint config.

analyzed by
Leitwacht
first seen
Aug 26, 2026, 10:16 AM
analyzed
Aug 26, 2026, 10:18 AM
weekly installs
213

Related advisories

browse all confirmed advisories →

Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.