目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%
← 返回恶意软件包
npm active

hardhat-option

MAL-2026-17660
2026-10-12 04:44:33
OpenSSF Malicious Packages
该软件包被识别为恶意包。建议隔离受影响环境,并排查凭据泄露和异常网络连接。

Summary

Malicious code in hardhat-option (npm)

凭据/密钥窃取文件/数据外传
AI 分析整理qwen3.6
基于上游报告生成,请以下方原始证据为准。
公开使用量数据
统计周期
last-week
下载量
0
数据源
npmjs.org
下载量只代表仓库活动度,不等于已被入侵的安装数量。
受影响版本
EcosystemPackageVersion
npmhardhat-option2.0.1
恶意行为说明OpenSSF OSV
上游来源证据
展开原始 OSV JSON
{"schema_version":"1.7.4","id":"MAL-2026-17660","published":"2026-10-08T03:38:47Z","modified":"2026-10-12T04:44:33.338918346Z","summary":"Malicious code in hardhat-option (npm)","details":"hardhat-option@2.0.1 was published to npm on 2026-10-07 09:12 UTC and removed by npm on 2026-10-07 15:29 UTC. Like hardhat-promised@2.21.0 (published the day before), the name targets the Ethereum development tool hardhat, and the package is a copy of the pino logger (README badges still point to pino) with one file added that pino does not contain: lib/config.js, a 4,499,968-byte obfuscated script. index.js requires ./lib/config on line 6, so the payload runs as soon as the package is required. package.json carries the same fake author as hardhat-promised (Robert King <hello@jsonspack.com>), no repository, and the added dependency axios.\n\nBehavior observed when lib/config.js is loaded in an instrumented sandbox: axios.post of JSON to http://167.88.172.33:8087/api/log containing os.hostname(), os.platform()/release()/type() and os.userInfo().username, with a fixed key ukey=309 (hardhat-promised uses 301), a tag t=3, a timestamp and a SHA-256 'validation' header. The messages posted are 'Failed to spawn autoUploadScript', 'Failed to spawn ldbScript' and 'Failed to spawn socketScript', which name the same three stealer modules as hardhat-promised: automatic file upload, LevelDB (browser extension / wallet storage) reading, and a persistent socket connection to the operator.\n\nTrigger: on import (require). Type: trojanized copy of a popular library acting as an information-stealer loader with a hard-coded C2 at 167.88.172.33:8087; second package of the hardhat-promised family.\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (2d460f6c739361d793fbc66b2aa32d1d9ab6fe0df4caefe13c590f40d05d5277)\nThe package's declared main index.js immediately requires./lib/config, which is a single-line ~4.5MB obfuscator.io-style bundle (26,234-entry hex-escaped string array, rotated decoder wrappers, control-flow flattening) whose top-level IIFE executes as soon as the module is loaded. The exported middleware is a no-op, so the sole effect of require('hardhat-option') is to run the opaque payload with the installer's privileges. The package also presents a false identity: the name is hardhat-option but README, index.d.ts and lib/* are copied from pinojs/pino and index.js re-exports module.exports.pino = middleware to satisfy consumers expecting pino's API, while package.json attributes authorship to 'Robert King <hello@jsonspack.com>' with an unrelated bugs URL at jsonspack.com. A multi-megabyte, fully obfuscated module body that auto-executes on import inside a package falsely wrapped in another project's identity is the canonical loader/dropper shape.\n","affected":[{"package":{"name":"hardhat-option","ecosystem":"npm"},"versions":["2.0.1"],"database_specific":{"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"evidence_files":[{"path":"lib/config.js","sha256":"b01c59ae0a76527503799aab109bd701e34f260d192722a8cf12c97a4e6d208c","tlsh":"61265f889244e03796cf1ac3bf0529ede57aa861e4cca30797d4be5cb9ac40bd4b5dd0"},{"path":"package.json","sha256":"1e4d73a4b8f560ba835af847b248c85e0a7ae02253aa160504a5b5009f3cb746","tlsh":"5e017620deb88e2301ed25825c2a0603b6a18c175528fc2933dba12c0fad5fb41bf22d"}],"package_integrity":[{"filename":"hardhat-option-2.0.1.tgz","hashes":{"sha1":"1f82b713a392b01bd0b75c52654761c7866cef36","sha512_sri":"sha512-Xuhq5XHR/fIU8SmY4COyYjBbNHa5AA1QAJGj0gx013RxO919NrboN7DnYJqYGKgiRTeA4QYDg1sjgLA+7is6+A=="}}]}}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/hardhat-option/v/2.0.1"}],"database_specific":{"iocs":{"files":[{"digests":{"sha256":"b01c59ae0a76527503799aab109bd701e34f260d192722a8cf12c97a4e6d208c"},"note":"obfuscated loader added to the pino copy; posts host identity to the C2 and spawns the stealer modules","paths":["lib/config.js"],"source":"PACKAGE_ARCHIVE"},{"digests":{"sha256":"4e6c4e61a7019ab0affe9c2d20e36701b330ec357be205930355bac1464f9316"},"note":"requires ./lib/config on line 6, so the payload runs on import","paths":["index.js"],"source":"PACKAGE_ARCHIVE"}],"ips":["167.88.172.33"],"urls":["http://167.88.172.33:8087/api/log"]},"malicious-packages-origins":[{"id":"IN-MAL-2026-021119","import_time":"2026-10-08T03:50:29.181798954Z","modified_time":"2026-10-08T03:38:47Z","sha256":"2d460f6c739361d793fbc66b2aa32d1d9ab6fe0df4caefe13c590f40d05d5277","source":"amazon-inspector","versions":["2.0.1"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"},{"name":"Eunsoo Kim","contact":["https://github.com/eskim86"],"type":"FINDER"}]}

数据来源:OpenSSF Malicious Packages · Apache-2.0