Malicious code in zebo (PyPI)
The zebo package on PyPI contained malicious code that automatically installs a keylogger and screenshot extraction tool with autostart persistence. The malicious campaign was identified and attributed to OpenSSF's malicious packages database.
- Disclosed
- Last updated
- Blast radius
- Unknown; all users who installed the malicious zebo package from PyPI
- Ecosystems
- Attack vectors
- Affected entities
- zeboPyPI package containing malicious code
The zebo package distributed via PyPI contained intentionally malicious code designed to compromise user systems. Upon installation, the package automatically deployed a script with keylogger and screenshot extraction capabilities, configured to persist across system restarts via autostart mechanisms.\n\nThe malicious payload was identified as part of a broader infostealer campaign (2024-11-zebo) with clear intent to steal user credentials and sensitive information. The compromise was detected and documented by the OpenSSF's malicious packages project, which maintains a public record of known malicious packages in open-source ecosystems.\n\nThe package has been removed from PyPI and the incident is considered resolved from a distribution standpoint, though any systems that installed the malicious version remain at risk unless remediated.
Indicators of compromise
- Packages
- zebo
Remediation
- Immediately uninstall the zebo package from all systems: pip uninstall zebo
- Scan affected systems for keylogger and infostealer artifacts, particularly in autostart locations (Windows: HKLM/HKCU Run registry keys, Linux: /etc/init.d, ~/.bashrc, ~/.profile, macOS: ~/Library/LaunchAgents)
- Review system logs and network traffic for signs of credential theft or data exfiltration
- Change all passwords and credentials on affected systems, especially for sensitive accounts
- Monitor for unauthorized access to accounts that may have been compromised
- Do not reinstall zebo; verify any replacement package is from a trusted source
Sources
- GitHub Advisory GHSA-gf2w-6wmp-5w44 · GitHub Advisory Database
Cite this entry
"Malicious code in zebo (PyPI)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed November 1, 2024; last updated July 21, 2026. https://supplychainattack.org/incident/malicious-code-in-zebo-pypi-23vtjd
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- resolvedhigh
Malicious code in morpho-sdk (PyPI)
The morpho-sdk package on PyPI contained malicious code that exfiltrates basic host information (IP address, username) during installation. The package overrides the install command in setup.py to execute the malicious payload when installed.
PyPICompromised package - resolvedcritical
Malicious code in dlmm-sdk (PyPI)
dlmm-sdk, a PyPI package, was compromised with malicious code that exfiltrates environment variables, credential files, and cryptocurrency wallet directory listings upon import. The malicious campaign (2026-08-dlmm) was identified and attributed to OpenSSF's malicious-packages repository.
PyPICompromised package - resolvedcritical
Malicious code in joule-btp-extension (PyPI)
Malicious code was published in joule-btp-extension on PyPI (version 0.1.6). The package contained code to exfiltrate system information, establish reverse shells, and communicate with domains associated with malicious activity. The incident appears to have been an internal test accidentally uploaded to a public repository.
PyPICompromised package - resolvedhigh
Malicious code in euler-sdk (PyPI)
The euler-sdk package on PyPI contained malicious code that exfiltrates basic host information (IP address, username) during installation. The package overrides the install command in setup.py to execute the malicious payload when installed.
PyPICompromised package