MAL-2026-17927

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/fabtoolkit/MAL-2026-17927.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-17927
Published
2026-10-19T02:26:31Z
Modified
2026-10-19T02:30:03Z
Summary
Malicious code in fabtoolkit (PyPI)
Details

-= Per source details. Do not edit below this line.=-

Source: amazon-inspector (e55333b9d934a04c029943e0e6fbf34fff7c1344e0d1964b6860bc02d322855d)

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.

Database specific
{
    "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"
            ]
        }
    ]
}
References
Credits

Affected packages

PyPI / fabtoolkit

Package

Name
fabtoolkit
View open source insights on deps.dev
Purl
pkg:pypi/fabtoolkit

Affected ranges

Affected versions

0.*
0.1.0
0.1.1
0.1.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":  "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"
            }
        }
    ]
}
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/fabtoolkit/MAL-2026-17927.json"