npm · Malicious package advisory
Malwarehardhat-ftp
GHSA-85mm-jcj2-w79v
Malicious code in hardhat-ftp (npm)
Details
**Severity:** Critical
**Affected versions:** `= 2.0.1`
## Source: amazon-inspector (5e916c23a0efbd49d3cfcd5993957df7afbade3f454925d0672acc8c9f68245c)
The package's declared main entry index.js unconditionally requires./lib/config, a 4,499,968-byte obfuscator.io-packed file (26,234-entry string array, hex-renamed identifiers, control-flow flattening, top-level IIFE) that executes as soon as any consumer runs `require('hardhat-ftp')`. After string-array decoding the loader resolves to execSync and spawn sinks, and the package declares axios as a dependency, giving the import-time payload both outbound HTTP and local command-execution primitives with the concrete command targets concealed behind the obfuscation. The surrounding package is a cover: it is published under the name hardhat-ftp with a vulnerability-management description, but the README headers, badges, and ecosystem links are lifted from pinojs/pino, and the files under lib/ (proto.js, levels.js, transport.js, multistream.js) mirror the pino source tree. The name/README/code mismatch, the scale of the obfuscation, and the presence of exec+HTTP primitives inside the auto-loaded module match the masquerade-dropper pattern: installing or requiring this package triggers execution of concealed attacker-controlled code on the installer's host.
---
Credit: [OpenSSF](https://github.com/ossf/malicious-packages) ([source](https://github.com/ossf/malicious-packages/blob/ae1ef40954ea15dd560720d58f647c9880afc699/osv/malicious/npm/hardhat-ftp/MAL-2026-17506.json))
**References:**
- https://github.com/ossf/malicious-packages/blob/ae1ef40954ea15dd560720d58f647c9880afc699/osv/malicious/npm/hardhat-ftp/MAL-2026-17506.json
- https://www.npmjs.com/package/hardhat-ftp/v/2.0.1
- https://github.com/advisories/GHSA-85mm-jcj2-w79vCompromised versions (1)
- = 2.0.1
Any computer that installed or ran a compromised version should be considered fully compromised. Rotate every secret on that machine from a clean environment.