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

目标: 1000 元 · 已筹: 1359 元

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

tennacity

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

Summary

Malicious code in tennacity (PyPI)

凭据/密钥窃取文件/数据外传
AI 分析整理qwen3.6
基于上游报告生成,请以下方原始证据为准。
公开使用量数据
统计周期
—
下载量
—
数据源
暂无公开数据
下载量只代表仓库活动度,不等于已被入侵的安装数量。
受影响版本
EcosystemPackageVersion
PyPItennacity1.0.0
PyPItennacity1.2.0
PyPItennacity1.2.2
恶意行为说明OpenSSF OSV
上游来源证据
展开原始 OSV JSON
{"modified":"2026-07-19T20:22:16Z","published":"2026-07-14T10:08:54Z","schema_version":"1.7.4","id":"MAL-2026-10576","summary":"Malicious code in tennacity (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (c7933cd1ec11531feba788870555eeac615535d8e230b4d252880def9c68ff5e)\ntennacity is a one-character typosquat of the popular 'tenacity' library; its README/PKG-INFO are copied verbatim from real tenacity while setup.py lists placeholder author metadata ('Your Name', your.email@example.com) and a 'prints Hello World on import' description. On import, tennacity/__init__.py branches on OS and CPU architecture to download platform-specific binaries from https://easyswapnow.pro/downloads/lix_amd.bin, lix_arm.bin, mac_amd.bin, mac_arm.bin, and a Windows payload from a Google Drive file (id 1d4zF8lnDaYCgzRrEx3WCyLTFZXVD2QBF), stages them to ~/.local/share/config, /Users/Shared/.local/config, and %TEMP%/t.jse, sets the executable bit, and invokes them via subprocess.run. It then installs login-time persistence: a systemd --user unit at ~/.config/systemd/user/python-script.service (enabled via 'systemctl --user enable --now') on Linux and a LaunchAgent at ~/Library/LaunchAgents/com.user.script.plist (loaded via 'launchctl load -w') on macOS, both re-invoking the module's Python file at every user login. The fetched binaries are unpinned, unverified, and hosted on a non-publisher domain unrelated to the package's stated Hello-World purpose.\n\n## Source: kam193 (d1f457b8b07c4cda5c20b76c195faa127906578c1977fb00469c44a7a114f810)\nThe typosquatted package installs a Mythic/Poseidon C2 framework beacon and ensures persistence. After installation, the beacon communicates with C2 on wegoexchange[.]site for further commands.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-07-tennacity\n\n\nReasons (based on the campaign):\n\n\n - malware\n\n\n - Downloads and executes a remote executable.\n\n\n - The package contains code to detect if it is running in a sandbox environment.\n\n\n - typosquatting\n\n\n - persistence\n","affected":[{"package":{"ecosystem":"PyPI","name":"tennacity"},"versions":["1.0.0","1.2.0","1.2.2"],"database_specific":{"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"evidence_files":[{"path":"tennacity/__init__.py","sha256":"b03fab4dfa0e56ede3fe954cc98966f65b5c2f371caba5d596e09b604f2222af","tlsh":"8912a382cc86b83101b29aad8c33c552fb4b5603466b64a5b4fc85d91f70876c5b29bf"},{"path":"setup.py","sha256":"5bd4f9841d25b32821ee55b5837c71163f0accc0a19311915ef3e345c0e2b1cd","tlsh":"66f0ac571e817ca002b5c0582d26bd19f539872b1a90c8cb36bc021d7f799c64a26394"}],"package_integrity":[{"filename":"tennacity-1.2.0-py3-none-any.whl","hashes":{"blake2b_256":"5c629277a0509dd28282ee18665a5288213235790463fbd1fbde40b23e6b6bad","md5":"a8d07dd976da71df1c6f6eb727128b58","sha256":"38abd27082b71c47e53a2bd2143026df3b57481761e77b4f5ffdc917c545a547"}},{"filename":"tennacity-1.2.0.tar.gz","hashes":{"blake2b_256":"f8b6aaa463bca6adc9bcf204043d9ab31f508b572f4e5a9ebe51cbffc8603c7f","md5":"8088c48b152218a0dc9171d7f1156738","sha256":"ea58c974bfd4e999c3b490f855a273f81deec8b708bc9c91c6e7e3fd6c379ee1"}}]}}}],"references":[{"type":"EVIDENCE","url":"https://www.virustotal.com/gui/file/b60ead7581e0d36d47d2362a6843f6ffa3d5748fe7e3a76eef2942d13b3b0613/detection"},{"type":"WEB","url":"https://www.virustotal.com/gui/file-analysis/ZjIzNWQzZmZhYmMyZmQ5Njg3MWI4MmQ5OTMzYTc3YzU6MTc4NDAyMjgxMA=="},{"type":"EVIDENCE","url":"https://www.virustotal.com/gui/file/15378a183d833832b41cf28f061d6108e0145b81a8faf82f5d860828a0b99584/detection"},{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/tennacity"},{"type":"PACKAGE","url":"https://pypi.org/project/tennacity/1.2.0/"},{"type":"PACKAGE","url":"https://pypi.org/project/tennacity/1.2.2/"},{"type":"PACKAGE","url":"https://pypi.org/project/tennacity/1.0.0/"}],"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":{"iocs":{"domains":["wegoexchange.site","easyswapnow.pro"],"urls":["https://easyswapnow.pro/downloads/lix_amd.bin","https://easyswapnow.pro/downloads/lix_arm.bin","https://easyswapnow.pro/downloads/mac_amd.bin","https://easyswapnow.pro/downloads/mac_arm.bin","https://drive.google.com/uc?export=download&id=1d4zF8lnDaYCgzRrEx3WCyLTFZXVD2QBF&confirm=t","http://wegoexchange.site/data"]},"malicious-packages-origins":[{"source":"kam193","sha256":"d1f457b8b07c4cda5c20b76c195faa127906578c1977fb00469c44a7a114f810","import_time":"2026-07-14T10:35:53.662535686Z","id":"pypi/2026-07-tennacity/tennacity","modified_time":"2026-07-14T10:08:54.466025Z","versions":["1.0.0","1.2.0","1.2.2"]},{"source":"amazon-inspector","sha256":"c61b9ced61c9f37b074b401bd8af2703a54e8bbdf54b27912c2f0079b4250986","import_time":"2026-07-14T13:35:49.275013681Z","id":"IN-MAL-2026-010500","modified_time":"2026-07-14T12:48:59Z","versions":["1.2.0"]},{"source":"amazon-inspector","sha256":"c70bb79fdd421b53349d6a7f4a25c85fb73b4c3ef6909fc3ef4cf1585d0a8232","import_time":"2026-07-14T13:35:49.084082746Z","id":"IN-MAL-2026-010498","modified_time":"2026-07-14T12:48:41Z","versions":["1.2.2"]},{"source":"amazon-inspector","sha256":"c7933cd1ec11531feba788870555eeac615535d8e230b4d252880def9c68ff5e","import_time":"2026-07-14T13:35:48.961316868Z","id":"IN-MAL-2026-010497","modified_time":"2026-07-14T12:48:34Z","versions":["1.0.0"]},{"source":"kam193","sha256":"c5dc783a91ddb736feade459a3d46377e880ee7769860342eb045fd01941d38b","import_time":"2026-07-15T08:51:08.559315723Z","id":"pypi/2026-07-tennacity/tennacity","modified_time":"2026-07-14T10:08:54.466025Z","versions":["1.0.0","1.2.0","1.2.2"]},{"source":"kam193","sha256":"627140a0bd5a559a78ab8896b921155dbf2c8afa62b548b5d426ef83d59e0c05","import_time":"2026-07-15T17:59:58.800319957Z","id":"pypi/2026-07-tennacity/tennacity","modified_time":"2026-07-14T10:08:54.466025Z","versions":["1.0.0","1.2.0","1.2.2"]},{"source":"kam193","sha256":"a30cbd0a7b7d040fa86b90ccb36fbeceff383f0c515a0b4cfa0df7f6f73656a7","import_time":"2026-07-19T20:20:30.650783845Z","id":"pypi/2026-07-tennacity/tennacity","modified_time":"2026-07-14T10:08:54.466025Z","versions":["1.0.0","1.2.0","1.2.2"]}]}}

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