Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

fabtoolkitPyPI

Advisory published Updated

fabtoolkit is a confirmed malicious PyPI package (MAL-2026-17927) that steals credentials and exfiltrates sensitive data (malicious versions 0.1.0, 0.1.1, 0.1.2…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in fabtoolkit (PyPI)

MAL-2026-17927
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
pip uninstall fabtoolkit

What this malware does

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 versions

4 flagged
0.1.00.1.10.1.20.2.1

Indicators of compromise (SHA-256)

567b18257d1e8a385129705e40ad51484d1a86491c08c37d8bf192965273cb7b
7d579abeba93f8d9fe48b53f95a1ba8e45fb4630f19269aca4c5a9149c4bf6cd
e55333b9d934a04c029943e0e6fbf34fff7c1344e0d1964b6860bc02d322855d
31bca15e3f2b0d00803862409ca9abe10985158a994449d79348675aa632d76d

Detection & response playbook

Credential / info stealer
  1. Find it

    Search your lockfiles and build artifacts for fabtoolkit (4 malicious versions).

  2. If you installed it — respond

    fabtoolkit is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.

  3. Did it already run?

    If fabtoolkit was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.

Frequently asked questions

No. fabtoolkit on PyPI has been identified as a malicious package (versions 0.1.0, 0.1.1, 0.1.2, 0.2.1 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-021526IN-MAL-2026-021523IN-MAL-2026-021525IN-MAL-2026-021544

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks fabtoolkit-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

fabtoolkit (PyPI) malicious package — MAL-2026-17927 | O3 Security