@wizloft/harness-validation @0.1.1-alpha.3
Vulnerability report · Last retrieved from osv.dev August 19, 2026 at 12:52 PM UTC
OSV ID
MAL-2026-14289
Ecosystem
npm
Summary
dist/index.js appends a heavily obfuscated obfuscator.io-style payload (string array _0x240a of length 303, decoder _0x4963, string-array rotation) after the clean TypeScript-compiled validation code. None of this obfuscated code is declared in dist/index.d.ts and it executes at top level on import '@wizloft/harness-validation' . Decoded string fragments include Ethereum RPC / block-explorer hostnames ( h.drpc.org , pc.io/eth , stapi.io ), a hardcoded attacker Ethereum address ( 0xa322E5f3... ), Etherscan-style query parameters ( ?module=account , filterby=from ), a spoofed browser User-Agent, and application/json / content-encoding request framing. The payload queries the block explorer for transactions from the hardcoded wallet, extracts a URL/payload from the transaction data, then fetches and executes the resolved content — a blockchain-based dead-drop that lets the publisher rotate the delivered code by posting a new transaction from that wallet, giving them a persistent mutable remote-code channel against every process that imports the library. Sibling packages in the @wizloft/* namespace (@wizloft/harness-evidence, @wizloft/harness-kernel) are declared dependencies at matching alpha versions and exhibit the same trojanized-library shape.
Source: amazon-inspector (67b0fc0f25eb3d7852b52d7e7db50071ac08ddfb1965df306bbf87ebf295cbe1)
Protect your entire dependency tree
Scan your lock files automatically on every PR. Block malicious packages before they reach production.