Skip to content
OpenAdvisories
Malicious MAL-2026-3689

dcchbot

PyPI package · versions 1.9.4, 1.9.1, 1.8.3, 1.9, 1.8.1

Reported May 12, 2026 · Updated May 13, 2026

If this package is installed

Remove it, treat the machine (or CI runner) as compromised, and rotate every secret, token and key it could access — from a different, clean machine.

Details

Source: amazon-inspector (df79831d1b486c8ca704295b410cec7b66be85aa87c3244d97ff1e87f643183a)
The package performs multiple installer-hostile behaviors. (1) dcchbot/__init__.py auto-invokes run() on import, which triggers interactive input() prompts and an outbound HTTPS GET to a non-PyPI third-party domain (https://evan0708.rf.gd/pypi-backup/json) — any import (including by IDEs, linters, or dependency scanners) blocks on stdin and beacons to attacker-controlled infrastructure. (2) main.py reads `data['info']['version']` from that rf.gd endpoint and later uses the value directly inside `os.system(f'pip install dcchbot=={latest_version}')` in the `/bot-update` slash handler; a crafted response (e.g. containing shell metacharacters) yields arbitrary command execution on the installer's host. The rf.gd free-subdomain pattern can also be re-registered by third parties if the account lapses, making this a latent RCE channel. (3) main.py hardcodes `CODER_ID = 1317800611441283139` and authorizes that Discord user ID inside `/op`, `/stop`, `/token`, and `/bot-update` handlers in addition to the installer's OWNER_ID — the package author can, on any Discord server where an installer's bot is present, leak the bot token (`/token` sends `bot._token`), grant themselves administrator, or trigger the vulnerable update command. This is direct installer-side harm: token exfiltration, privilege escalation on the installer's Discord servers, and remote shell command execution driven by an external URL.