Malicious code in phabricator-client (PyPI)
The phabricator-client 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.
- Disclosed
- Last updated
- Blast radius
- Users who installed the phabricator-client package from PyPI
- Ecosystems
- Attack vectors
- Affected entities
- phabricator-clientPyPI package containing malicious code
The phabricator-client package published on PyPI was found to contain malicious code designed to exfiltrate basic system information from the host upon installation or module import. The malicious payload includes the host's IP address and username.\n\nThe attack was implemented by overriding the install command in setup.py, causing the malicious code to execute during the package installation process. This is a common technique for supply chain attacks targeting Python package repositories.\n\nThe package was identified and reported by the OpenSSF's malicious-packages project (MAL-2026-11195). The incident was categorized as a pentest-style package with limited harm potential, though it demonstrates the risk of installing untrusted packages from public repositories.\n\nUsers who installed this package should assume their basic system information (IP address, username) may have been exfiltrated and take appropriate security measures.
Indicators of compromise
- Packages
- phabricator-client
Remediation
- Remove the phabricator-client package from all systems where it was installed
- Audit system logs for suspicious network connections or data exfiltration during the installation period
- Change credentials and review account activity for any systems that had the package installed
- Monitor for any unauthorized access or use of exfiltrated information (IP addresses, usernames)
- Use package verification tools and review package source code before installation
- Consider using private package repositories or package pinning to reduce exposure to malicious packages
Sources
- GitHub Advisory GHSA-pph4-3958-ffpq · GitHub Advisory Database
Cite this entry
"Malicious code in phabricator-client (PyPI)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed July 30, 2026; last updated July 30, 2026. https://supplychainattack.org/incident/malicious-code-in-phabricator-client-pypi-779por
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- resolvedcritical
Malicious code in cfgzen (PyPI)
Malicious code was discovered in the cfgzen PyPI package, embedded in a native module that functions as an infostealer. The malicious code downloads and executes an encrypted remote executable, with capabilities to exfiltrate environment variables and detect sandbox environments. The package has been identified as part of campaign 2026-07-cfgzen.
2026 07 CfgzenPyPICompromised package - containedcritical
Malicious code in karpatkey (PyPI)
The karpatkey package on PyPI contained malicious code that exfiltrated sensitive credentials and data from infected systems. Upon import, the package spawned a background daemon thread that collected SSH keys, AWS/GCP credentials, kubeconfig, cryptocurrency wallets, and other secrets, then transmitted them via HTTP to hardcoded IP addresses.
PyPICompromised packageMalicious commit - containedcritical
Malicious code in mrmustard (PyPI)
A malicious version of the mrmustard package was published to PyPI containing code that exfiltrates SSH keys, AWS credentials, Kubernetes config, environment variables, and system identifiers to a remote endpoint. The payload includes multiple persistence mechanisms that survive package uninstallation.
PyPICompromised package - containedcritical
Malicious code in karpatkit (PyPI)
The karpatkit package on PyPI contained malicious code that exfiltrated sensitive credentials and secrets on import. The package spawned a daemon thread collecting environment variables, cloud credentials, SSH keys, Kubernetes tokens, cryptocurrency wallets, and shell histories, then transmitted them via HTTP to hardcoded IP addresses.
PyPICompromised packageMalicious commit