Malicious code in adcandy (PyPI)
The adcandy package on PyPI contained malicious code designed to execute spyware and information-stealing malware. It was part of a campaign by the EsqueleSquad group that published nearly 6,000 malicious packages across PyPI and NPM.
- Disclosed
- Last updated
- Blast radius
- Potentially thousands of installations; part of a large-scale malicious package campaign affecting PyPI and NPM ecosystems.
- Ecosystems
- Attack vectors
- Threat actor
- Affected entities
- adcandyMalicious package published to PyPI
The adcandy package published to PyPI contained malicious code intended to execute spyware and information-stealing malware on affected systems. This package was identified as part of a coordinated campaign by the EsqueleSquad group.\n\nThe EsqueleSquad group published nearly 6,000 malicious packages across PyPI and NPM ecosystems as part of this campaign. The malicious packages were designed to steal information and execute unauthorized code on compromised systems.\n\nThis incident was documented by the OpenSSF's malicious-packages repository (MAL-2023-2477) and tracked via GitHub Advisory GHSA-mr7m-44hv-m72f.
Indicators of compromise
- Packages
- adcandy
Remediation
- Remove adcandy from all environments immediately
- Audit systems that installed adcandy for signs of compromise, including unauthorized network connections and data exfiltration
- Review and rotate any credentials or sensitive information that may have been exposed
- Monitor for indicators of compromise associated with the EsqueleSquad malicious package campaign
- Implement package verification and scanning in dependency management workflows
Sources
- GitHub Advisory GHSA-mr7m-44hv-m72f · GitHub Advisory Database
Cite this entry
"Malicious code in adcandy (PyPI)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed July 21, 2026; last updated July 21, 2026. https://supplychainattack.org/incident/malicious-code-in-adcandy-pypi-zgzqia
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 afrit-name (PyPI)
Malicious code was discovered in the afrit-name package on PyPI. The incident was identified and documented by the OpenSSF malicious packages project.
PyPICompromised package - resolvedcritical
Malicious code in adv2099m7 (PyPI)
Malicious code was discovered in the adv2099m7 package on PyPI. The package was identified and cataloged by the OpenSSF malicious packages project.
PyPICompromised package - resolvedcritical
Malicious code in adrandom (PyPI)
The adrandom package on PyPI contained malicious code that executed spyware and information-stealing malware. It was part of a campaign by the EsqueleSquad group that published nearly 6,000 malicious packages across PyPI and NPM.
EsquelesquadPyPICompromised package - resolvedcritical
Malicious code in ziphash (PyPI)
The ziphash package on PyPI contained malicious code that downloads and executes multi-stage malware during archive-support class initialization. The malware exhibits obfuscation and remote code execution capabilities, classified as part of the 2025-11-uzip campaign.
2025 11 UzipPyPICompromised package