Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

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.

ShareXLinkedInHacker News
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

  1. 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.

  1. 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
  2. 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
  3. 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
  4. 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