-= Per source details. Do not edit below this line.=-
fabtoolkit executes a payload (embedded as a CHILD string run via subprocess.run([sys.executable,'-I','-c',CHILD],...)) that fetches a JSON config from https://transfer.archivete.am/H2Uxm/fabdeploycheck-config.json with TLS verification disabled (ssl._create_unverified_context()) and dispatches on config-supplied kind values: file reads arbitrary filesystem paths, run executes attacker-supplied argv via subprocess, http issues attacker-chosen requests with Bearer tokens chained from previously-read files, tcp probes ports, and revsh forks a daemon that polls base+'/'+ident+'-cmd.txt' and pipes the returned bytes into /bin/sh -c, PUTting stdout/stderr back to the same host. Collected file contents, command output, HTTP responses, and probe results are packed into an in-memory zip and PUT to transfer.archivete.am under an attacker-chosen report name. Before daemonizing, the payload walks /proc/*/cmdline and SIGKILLs processes whose cmdlines contain FABDRV3, fabdrv2, or connection ready, enforcing single-instance persistence and clearing prior variants. The entry points python -m fabtoolkit and any import path reaching selftest()/check() trigger the payload. The destination is an anonymous public file-transfer host; config-controlled file reads enable harvesting of credentials such as ~/.aws/credentials and ~/.ssh/* along with cloud metadata via the http kind. The package has no legitimate functionality matching its naming.
{
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-021526",
"import_time": "2026-10-19T02:27:23.818284981Z",
"modified_time": "2026-10-19T02:26:57Z",
"sha256": "567b18257d1e8a385129705e40ad51484d1a86491c08c37d8bf192965273cb7b",
"source": "amazon-inspector",
"versions": [
"0.1.2"
]
},
{
"id": "IN-MAL-2026-021523",
"import_time": "2026-10-19T02:27:23.723807383Z",
"modified_time": "2026-10-19T02:26:31Z",
"sha256": "7d579abeba93f8d9fe48b53f95a1ba8e45fb4630f19269aca4c5a9149c4bf6cd",
"source": "amazon-inspector",
"versions": [
"0.1.1"
]
},
{
"id": "IN-MAL-2026-021525",
"import_time": "2026-10-19T02:27:23.784650522Z",
"modified_time": "2026-10-19T02:26:46Z",
"sha256": "e55333b9d934a04c029943e0e6fbf34fff7c1344e0d1964b6860bc02d322855d",
"source": "amazon-inspector",
"versions": [
"0.1.0"
]
}
]
}[
{
"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"
}
]
{
"evidence_files": [
{
"path": "fabtoolkit/__init__.py",
"sha256": "518954224d7879e904b0f7fa669c0f7463e7ea0269ed7f0ed50681178bfce0f5",
"tlsh": "09e18322981a3472d283e53cac31c9557b56be1b910398717edc9b645fc84b7c0b27ba"
}
],
"package_integrity": [
{
"filename": "fabtoolkit-0.1.2-py3-none-any.whl",
"hashes": {
"blake2b_256": "2fec5b2c219bcc8605baf68810edf70577716b20d81e4457a0229ae993b2b6ba",
"md5": "f6b79c593a351f3e8c9a9a88aedf0de8",
"sha256": "1e527bdf3345ce4e7e24091205ef6c84a06508bf5bf83c7bdec48d26b7522b2b"
}
}
]
}
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/fabtoolkit/MAL-2026-17927.json"