MAL-2026-16349
Malicious code in hardhat-devkit (npm)
Details
--- _-= Per source details. Do not edit below this line.=-_
## Source: amazon-inspector (ddcb676af47bf26017d1fbc2cf63aae76d09e9248e860f6d0e86d57da92d2b95) Package published as `hardhat-devkit` presents itself as an Ethereum/Hardhat developer toolkit, but the shipped surface is a cover story: README, index.d.ts, and keywords (`fast`, `logger`, `stream`, `json`) are copied from `pinojs/pino`, the manifest description references vulnerability management, and the homepage points at `jsonspack.com` (author `hello@jsonspack.com`). The package's `index.js` unconditionally executes `require('./lib/config')` on load. `lib/config.js` is a single-line ~4,070,107-byte JavaScript file heavily obfuscated with obfuscator.io techniques: hex-escaped identifiers and property names (`_0xNNNN`, `\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74`), a self-mutating string-array indexer with an embedded RC4+base64 string decoder (`J[v]=J[W]; e+=String.fromCharCode(N.charCodeAt(a)^J[(J[v]+J[W])%256])`), control-flow flattening via a `while(!![]){try{...}catch{}}` dispatcher, and a debugger-defense self-check. This concealed payload runs on any `require('hardhat-devkit')` or `import` of the package, targeting an audience (Ethereum developers) whose machines are likely to hold wallet keystores, mnemonics, and deployment keys. The combination of brand impersonation, mismatched cover-story metadata copied from an unrelated legitimate project, and a multi-megabyte obfuscated blob reachable at module load time is the supply-chain dropper shape.
Are you affected?
Enter the version of the package you're using.
Affected packages
No fixed version published yet for hardhat-devkit (npm). Pin to a known-safe version or switch to an alternative.