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

目标: 1000 元 · 已筹: 1359 元

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

cmd2func

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

Summary

Malicious code in cmd2func (PyPI)

凭据/密钥窃取文件/数据外传
AI 分析整理qwen3.6
基于上游报告生成,请以下方原始证据为准。
公开使用量数据
统计周期
—
下载量
—
数据源
pypistats.org
下载量只代表仓库活动度,不等于已被入侵的安装数量。
受影响版本
EcosystemPackageVersion
PyPIcmd2func0.2.2
PyPIcmd2func0.2.3
恶意行为说明OpenSSF OSV
上游来源证据
展开原始 OSV JSON
{"modified":"2026-06-12T19:46:18Z","published":"2026-06-06T06:13:57Z","schema_version":"1.7.4","id":"MAL-2026-5290","summary":"Malicious code in cmd2func (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (055d480cc069717b82f618e12d453e7d8dc7d2e83bf77ae25ae23f71e73a1d1a)\nThe package installs cmd2func-setup.pth, a.pth file that Python auto-loads at every interpreter start. The single-line payload uses the.pth import-trick with `or exec(...)` and mangled single-letter identifiers to smuggle a multi-statement body past review. When executed, the payload checks for a sentinel at /tmp/.bun_ran and, if absent, downloads the Bun runtime zip from https://github.com/oven-sh/bun/releases/download/bun-v1.3.13/bun-{platform}-{arch}.zip into /tmp/b/, extracts the `bun` binary, chmods it executable (0o775), and runs `bun run _index.js` against a JS file resolved via glob inside the package. The advertised purpose of cmd2func is `Convert command to callable Python object` — there is no legitimate need for an alternate JavaScript runtime. The combination of a hidden.pth auto-loader, obfuscated payload, alternate-runtime dropper, and unrelated JS execution is a covert dropper that fires on every Python interpreter invocation after install, not just at install time. The RECORD/metadata references the prior 0.2.1 version, consistent with a hijack of a previously legitimate package.\n\n## Source: kam193 (c56f23d1c59dd91728afaa8ae022f711a719574aeeabc0e2eee8f5d93dd30d21)\nVersions 0.2.2, 0.2.3 were compromised.\n\n\nCompromised packages start an obfuscated infostealer. The infostealer is a heavily obfuscated JavaScript code executed using Bun runtime on Python startup. It collectes all kinds of sensitive data, including API keys, credentials to package repositories, cryptocurrency assets, password manager data. Infostealer actively queries online services to collect additional secrets as well as attempts to gain persistence and spread further by publishing infected packages using collected credentials. Data are exfiltrated likely using Github. The code seems to threaten to wipe the user's data if it detects invalid GitHub tokens. Cleanup should be done with caution.\n\nIt seems to be related to the recent Mini Shai Hulud campaign.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-06-compr-woodpecker\n\n\nReasons (based on the campaign):\n\n\n - compromised-package\n\n\n - exfiltration-env-variables\n\n\n - exfiltration-cloud-tokens\n\n\n - exfiltration-credentials\n\n\n - abuses-pth\n\n\n - obfuscation\n\n\n - infostealer\n\n\n - The package contains code to detect if it is running in a sandbox environment.\n\n\n - exfiltration-crypto\n\n\n - files-exfiltration\n\n\n - destructive-actions\n","affected":[{"package":{"ecosystem":"PyPI","name":"cmd2func"},"versions":["0.2.2","0.2.3"],"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":"cmd2func-setup.pth","sha256":"c539766062555d47716f8432e73adbe3a0c0c954a0b6c4005017a668975e275c","tlsh":"4911c02e429385b0d975d646830b19f4afdb8ce28fc79506c8d8d4c1a7b2e50e3b7684"}],"package_integrity":[{"filename":"cmd2func-0.2.2-py3-none-any.whl","hashes":{"blake2b_256":"09c49296b151f3afa5c724e40e3f1da320c9ec8a06a3a796b488614f8149271a","md5":"44d972cf232ead51d4d78d20cbbddadb","sha256":"6a7c59cc45ccc8d1292d1c5bec35ecd4d3329072e20e562e59c7ae39645384b0"}}]}}}],"references":[{"type":"WEB","url":"https://socket.dev/blog/mini-shai-hulud-campaign-hits-red-hat-cloud-services-npm-packages"},{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/campaign/2026-06-compr-woodpecker"},{"type":"WEB","url":"https://socket.dev/blog/shai-hulud-descends-to-hades-miasma-pypi-wave"},{"type":"WEB","url":"https://o3.security/blog/pypi-supply-chain-attack-pth-file-miasma"},{"type":"WEB","url":"https://socket.dev/blog/mini-shai-hulud-miasma-and-hades-worms-target-bioinformatics-and-mcp-developers-via-malicious"},{"type":"PACKAGE","url":"https://pypi.org/project/cmd2func/0.2.2/"}],"credits":[{"name":"Amazon Inspector","type":"FINDER","contact":["inspector-research@amazon.com"]},{"name":"Kamil Mańkowski (kam193)","type":"REPORTER","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"]}],"database_specific":{"malicious-packages-origins":[{"source":"kam193","sha256":"c56f23d1c59dd91728afaa8ae022f711a719574aeeabc0e2eee8f5d93dd30d21","import_time":"2026-06-07T07:31:09.63940736Z","id":"pypi/2026-06-compr-woodpecker/cmd2func","modified_time":"2026-06-06T06:13:57Z","versions":["0.2.2","0.2.3"]},{"source":"kam193","sha256":"9308ab37378e86a6adad9ca85fa7888e9a9f370eea133415adc68ea3810621ea","import_time":"2026-06-08T11:41:02.516044434Z","id":"pypi/2026-06-compr-woodpecker/cmd2func","modified_time":"2026-06-06T06:13:57Z","versions":["0.2.2","0.2.3"]},{"source":"kam193","sha256":"3770293dd6cce24bf97433a78e083aee8710157617361ee9428d6b48ef87bf21","import_time":"2026-06-08T19:19:19.172299855Z","id":"pypi/2026-06-compr-woodpecker/cmd2func","modified_time":"2026-06-07T06:32:15Z","versions":["0.2.2","0.2.3"]},{"source":"kam193","sha256":"01a15f51e5e63c1de7516f5734211a4a077721fa79f1d8c2137873bc1fd98d23","import_time":"2026-06-09T07:48:29.633143653Z","id":"pypi/2026-06-compr-woodpecker/cmd2func","modified_time":"2026-06-07T06:32:15Z","versions":["0.2.2","0.2.3"]},{"source":"amazon-inspector","sha256":"055d480cc069717b82f618e12d453e7d8dc7d2e83bf77ae25ae23f71e73a1d1a","import_time":"2026-06-12T19:44:19.251486918Z","id":"IN-MAL-2026-006200","modified_time":"2026-06-12T19:11:06Z","versions":["0.2.2"]}]}}

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