Malicious code in aaiohttp (PyPI)
Attacker distributed 900+ malicious packages via PyPI, including aaiohttp, which infected local browsers with malicious extensions designed to manipulate clipboard and replace cryptocurrency wallet addresses.
- Disclosed
- Last updated
- Blast radius
- 900+ malicious packages distributed via PyPI
- Ecosystems
- Attack vectors
- Affected entities
- aaiohttpMalicious package distributed on PyPI
An attacker distributed over 900 malicious packages via the Python Package Index (PyPI), including a package named aaiohttp. These packages contained malicious code that targeted end-user systems.\n\nThe malicious payload installed browser extensions that performed clipboard manipulation and cryptocurrency wallet address replacement attacks. This attack vector allowed attackers to intercept and modify cryptocurrency transactions by replacing legitimate wallet addresses with attacker-controlled addresses.\n\nThe incident was identified and documented by the OpenSSF's malicious-packages repository (MAL-2023-1574). The packages have since been removed from PyPI.
Indicators of compromise
- Packages
- aaiohttp
Remediation
- Remove aaiohttp and any other suspicious packages from affected systems
- Audit installed Python packages for unexpected or unfamiliar names
- Check browser extensions for unauthorized or suspicious additions
- Review cryptocurrency transaction history for signs of address manipulation
- Use package verification tools and check PyPI package metadata before installation
- Monitor for similar typosquatting or malicious package distribution campaigns
Sources
- GitHub Advisory GHSA-48qh-9gx4-j472 · GitHub Advisory Database
Cite this entry
"Malicious code in aaiohttp (PyPI)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed July 21, 2026; last updated July 21, 2026. https://supplychainattack.org/incident/malicious-code-in-aaiohttp-pypi-wvs87x
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