SecurelistGReAT
OceanLotus behind ZiChatBot malware in PyPI wheel packages
Part of the APT32 story · since 6 May
- Wed 6 May, 13:32 UTC. Securelist, first report. OceanLotus behind ZiChatBot malware in PyPI wheel packages. This article, 1st of 2.
- Thu 11 Jun, 10:32 UTC. The Hacker News, its first report on the story. OceanLotus Hits Vietnam Investors With SPECTRALVIPER in FireAnt Attack.
Kaspersky’s GReAT researchers say OceanLotus is suspected of distributing ZiChatBot malware via malicious wheel packages uploaded to PyPI from July 2025, with three packages designed to imitate legitimate libraries. The packages, uuid32-utils, colorinal and termncolor, were uploaded in 2025-07-16 and 2025-07-22, and each delivered a dropper that could deploy ZiChatBot on Windows or Linux. ZiChatBot itself uses Zulip’s public REST APIs as its command and control server, rather than a dedicated C2 host.
The Windows dropper extracts terminate.dll (and on Linux terminate.so) from the wheel, loads the dropper into the Python process, and then deploys ZiChatBot, which persists via a registry Run entry on Windows and a crontab job on Linux. The campaign was removed from PyPI after discovery, and OceanLotus is attributed as the threat actor in this supply-chain attack.
How the story developed
2 articles from 2 outlets since 6 May. Quiet since 11 Jun. This was the first report.
- Wed 6 May, 13:32 UTC. Securelist, first report. OceanLotus behind ZiChatBot malware in PyPI wheel packages. This article, 1st of 2.
- Thu 11 Jun, 10:32 UTC. The Hacker News, its first report on the story. OceanLotus Hits Vietnam Investors With SPECTRALVIPER in FireAnt Attack.
- No CVE
- Larger: an outlet’s first report
- Coverage over time
- Quiet time, folded
Show all 2 articles as a listHide the list
- Wed 6 MayDay 01
- OceanLotus behind ZiChatBot malware in PyPI wheel packages13:32 · Securelist · First report · This article, 1st of 2
Quiet for 5 weeks
Thu 11 JunDay 361- OceanLotus Hits Vietnam Investors With SPECTRALVIPER in FireAnt Attack10:32 · The Hacker News · Picked up again