# MAL-2026-14587: Malicious code in pygame-renderkit (PyPI)


- **Type:** Malicious package
- **Package:** `pygame-renderkit` (PyPI)
- **Published:** 28 Aug 2026

## What is MAL-2026-14587?

MAL-2026-14587 is a malicious package in pygame-renderkit, published on 28 Aug 2026. 

### Official description

setup.py registers a custom install command that forks a daemonized child during pip install and executes a base64-encoded Python payload via exec(compile(...)). The decoded payload connects to a hardcoded C2 host at 5uj0a8ziyu.localto.net:3900 and provides an interactive reverse shell by duplicating the socket onto stdin/stdout/stderr of /bin/bash (via pty.spawn) or /bin/sh -i, with a 15-second reconnect loop. It also enumerates environment variables matching API, TOKEN, KEY, SECRET, PASS, CRED, AUTH, AWS, AZURE, GCP, OPENAI, ANTHROPIC, and MANUS, reads /etc/passwd, /etc/sudoers, /etc/shadow, ~/.bash_history, and /opt/.manus/current/config, and sends the collected data over TCP to the same host framed with [EXFIL]/[ENDEXFIL] markers. Persistence is established by writing /tmp/.rk_recon.py, installing a per-minute crontab entry, dropping a renderkit.service systemd user unit with Restart=always, and writing /etc/sudoers.d/.renderkit granting the current user NOPASSWD: ALL. The payload is stored as a base64-encoded template with %%HOST%%/%%PORT%% placeholders and the installer forks with start_new_session=True to hide from pip output. The package presents as a pygame utility; none of this behavior matches that stated purpose.

During installation, the package attempts to exfiltrate sensitive environment variables and files, establish persistence and open reverse shell.

---

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

Campaign: 2026-08-pygame-renderkit

Reasons (based on the campaign):

 - persistence

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

 - The package contains code to create a reverse shell, allowing an attacker to execute any commands on the victim's machine.

 - files-exfiltration

 - exfiltration-env-variables

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

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-14587 is a malicious package: pygame-renderkit (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-14587/ (Markdown: https://insights.sbomify.com/MAL-2026-14587/index.md)
```

## Sources

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

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