Malicious code in yffinance (PyPI)
Attacker distributed 900+ malicious packages via PyPI, including yffinance, which installed malicious browser extensions designed to manipulate clipboard contents and replace cryptocurrency wallet addresses.
- Disclosed
- Last updated
- Blast radius
- 900+ malicious packages distributed via PyPI
- Ecosystems
- Attack vectors
- Affected entities
- yffinancePyPI package
An attacker distributed over 900 malicious packages on PyPI as part of a coordinated campaign. The yffinance package was among those compromised with malicious code.\n\nThe malicious packages installed browser extensions that performed clipboard manipulation and cryptocurrency wallet address replacement attacks. This allowed attackers to intercept and modify cryptocurrency transactions by replacing legitimate wallet addresses with attacker-controlled addresses when users copied and pasted them.\n\nThe incident was identified and documented by the OpenSSF's malicious-packages repository. The attack demonstrates the risk of supply chain compromise in package repositories and the potential for malicious code to affect end-user systems beyond the Python environment.
Indicators of compromise
- Packages
- yffinance
Remediation
- Remove or uninstall the yffinance package and any other packages from the malicious campaign
- Audit system for installed browser extensions, particularly those installed without explicit user action
- Review browser extension permissions and remove any suspicious extensions
- Check cryptocurrency wallet addresses in recent transactions for signs of manipulation
- Update to a legitimate version of yffinance from a trusted source if the package is needed
- Monitor for unauthorized changes to clipboard or wallet addresses
Sources
- GitHub Advisory GHSA-m3jm-hph9-j9rv · GitHub Advisory Database
Cite this entry
"Malicious code in yffinance (PyPI)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed July 21, 2026; last updated July 21, 2026. https://supplychainattack.org/incident/malicious-code-in-yffinance-pypi-rwjnje
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 @years19/n8n-nodes-utils-helper-c (npm)
The npm package @years19/n8n-nodes-utils-helper-c contained a malicious postinstall script that downloads a trojanized Python multidict module from an attacker-controlled server and injects it into the system's Python site-packages directory, enabling arbitrary code execution on any subsequent Python invocation.
npmPyPICompromised packageMalicious commit - resolvedcritical
Malicious code in @years18/n8n-nodes-utils-helper-y (npm)
The npm package @years18/n8n-nodes-utils-helper-y contained malicious code in its postinstall hook that downloads and executes attacker-controlled Python toolkits (mhddos, pyroxy-full, impacket), persists them in the user's Python site-packages, and exfiltrates host information to an attacker-controlled endpoint. Installation triggers immediate code execution and establishes persistence.
npmPyPICompromised package - containedcritical
Malicious code in @years19/n8n-nodes-utils-helper-d (npm)
The npm package @years19/n8n-nodes-utils-helper-d contained malicious code that downloads and executes a Python DDoS/offensive-tooling dropper on installation. The package impersonates a legitimate n8n community node but performs unauthorized system reconnaissance and beacons host identity to an attacker-controlled endpoint.
npmPyPICompromised packageTyposquatting - resolvedcritical
Malicious code in @years19/n8n-nodes-utils-helper-b (npm)
The npm package @years19/n8n-nodes-utils-helper-b contained malicious code disguised as an n8n workflow utility. The postinstall hook executed reconnaissance, downloaded and extracted a Python tarball with TLS verification disabled, and exfiltrated system information to an attacker-controlled domain.
npmPyPICompromised package