PyPI Malware Hides C2 Inside Zulip Traffic

The break here is not just a bad package on PyPI. ZiChatBot uses Zulip’s public REST APIs as its control channel, so infected hosts can look like normal chat traffic instead of reaching out to obvious malware infrastructure. That makes destination-based filtering and chat-app allowlisting less dependable than standard playbooks assume. Three malicious wheels — uuid32-utils, colorinal, and termncolor — were uploaded to PyPI between July 16 and 22, then removed after discovery. They were reported to deliver the new ZiChatBot malware family on Windows and Linux, with the packages collectively drawing at least 2,480 downloads before takedown. The larger risk is persistence inside ordinary SaaS use. If an implant can hide command-and-control in a legitimate collaboration service, defenders lose the clean separation between business traffic and hostile traffic, and infected systems may stay active even when no dedicated C2 domain is present.

Part of the PlainSec briefing for 2026-05-08

Sources