MAL-2026-14285
Dashboard / Malicious Package / MAL-2026-14285
MAL-2026-14285
Summary: Malicious code in @wizloft/harness (npm)
Details: Source: amazon-inspector (3679ede1e874f59f4be963544c3df43069cd335b2f888753b7411e42c7a5d3dd) dist/index.js — the package's main/exports entrypoint — presents ~200 lines of TypeScript-compiled SDK facade followed by a single ~40KB line of obfuscator.io output (303-entry rotated string array _0x240a with decoder _0x4963 and hex-identifier control-flow variables). Deobfuscation of the string table reveals hardcoded references to public Ethereum RPC endpoints (eth.drpc.org, 1rpc.io), an etherscan-style API query (?module=ac...), a hardcoded Ethereum contract address 0xa322E5f3..., a spoofed Mozilla/5.0 User-Agent, JSON POST machinery, and the sinks require, pipe, and eval. The composition matches the EtherHiding on-chain-C2 dropper pattern: on import, the code queries a smart contract via a public Ethereum RPC to retrieve an attacker-controlled next-stage payload string, then passes it to eval() in the consumer's Node process, yielding arbitrary remote code execution against the installer. The on-chain payload storage is mutable by the contract owner but immutable to registry takedown and invisible to standard registry scanners. The README's claim of 'no executable binary' contradicts the shipped dist/index.js.
Affected packages
Package
Name: @wizloft/harness
Purl: pkg:npm/%40wizloft/harness
Affected ranges
Type: N/A
Events:
