# MAL-2026-13490: Malicious code in fast-hashes (PyPI)


- **Type:** Malicious package
- **Package:** `fast-hashes` (PyPI)
- **Published:** 7 Aug 2026

## What is MAL-2026-13490?

MAL-2026-13490 is a malicious package in fast-hashes, published on 7 Aug 2026. 

### Official description

setup.py defines a custom install command (NativeInstall.run) that decodes a base64 blob and passes it to exec(compile(...)) at install time. The decoded payload downloads an opaque binary from https://github.com/totti2188/8gp1Q7iZD3h4VW/releases/download/v1.3A/something to /tmp/something, chmods it to 0755, and Popen-launches it detached with start_new_session=True. The fetch target's GitHub account (totti2188) is unrelated to the declared package publisher, the binary is unpinned and unverified, and the fetch-and-execute logic is concealed behind a base64 blob labeled _COMPAT_PAYLOAD with a benign-sounding '_configure_native_bindings' cover story. The package's non-install code only wraps hashlib and has no legitimate need for a native binary. Any pip install of this version triggers arbitrary code execution on the installer's host under the identity of a third-party GitHub account.

Package imitates name of a popula library. During installation, obfuscated code downloads a malicious executable and starts it. It then exfiltrates at least cryptocurrency wallet data, probably more.

---

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.

Campaign: 2026-08-flasq

Reasons (based on the campaign):

 - typosquatting

 - The package overrides the install command in setup.py to execute malicious code during installation.

 - exfiltration-generic

 - Downloads and executes a remote executable.

 - obfuscation

 - exfiltration-crypto

## What should I do about MAL-2026-13490?

Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.

## Fix prompt for AI coding agents

```text
MAL-2026-13490 is a malicious package: fast-hashes (PyPI). Every version was published to cause harm.

Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.

Reference: https://insights.sbomify.com/MAL-2026-13490/ (Markdown: https://insights.sbomify.com/MAL-2026-13490/index.md)
```

## Sources

- OSV: https://osv.dev/vulnerability/MAL-2026-13490

---
From sbomify Insights: https://insights.sbomify.com/MAL-2026-13490/
Summaries are generated and may contain mistakes; the official description above is the record.
