# MAL-2025-4238: Malicious code in reqinstall (PyPI)


- **Type:** Malicious package
- **Package:** `reqinstall` (PyPI)
- **Published:** 20 Apr 2025

## What is MAL-2025-4238?

MAL-2025-4238 is a malicious package in reqinstall, published on 20 Apr 2025. 

### Official description

Campaign is split into multiple packages that altogether exfiltrates data from desktop Telegram application.

1. "pyapiepo" is a cover package that provides some useless features BUT also imports "zscaner"
2. "zscaner", when imported, automatically runs a function that is an entry point to the whole process; it uses the "scan" from "reqinstall" to walk through directories. The package also provides main logic: filtering files, triggering archiving directories and exfiltrating them. 
3. "reqinstall" ensures "requests" are installed and provides a directory tree scanning function.
4. "zmaker" provides functions to build archives from collected files.
5. "zsender" provides functions to exfiltrate data, the remote URL and a function to deobfuscate configuration in other packages.

Altogether, they look for "Telegram Desktop" folder, archive user data stored there and exfiltrate to a remote location.

---

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

Campaign: 2025-04-zscaner

Reasons (based on the campaign):

 - target:telegram

 - exfiltration-generic

 - The malicious code is intentionally included in a dependency of the package

## What should I do about MAL-2025-4238?

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-2025-4238 is a malicious package: reqinstall (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-2025-4238/ (Markdown: https://insights.sbomify.com/MAL-2025-4238/index.md)
```

## Sources

- OSV: https://osv.dev/vulnerability/MAL-2025-4238

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