Malicious code in psbt-utils (PyPI)
The psbt-utils package on PyPI contained malicious code disguised as a hardware wallet firmware upgrader. The payload is an infostealer that exfiltrates cryptocurrency wallets, browser credentials, SSH keys, TOTP seeds, and clipboard content, with persistence mechanisms via scheduled tasks or LaunchAgent.
- Disclosed
- Last updated
- Blast radius
- Unknown; depends on installation count and user execution patterns
- Ecosystems
- Attack vectors
- Affected entities
- psbt-utilsPyPI package containing malicious infostealer code
The psbt-utils package published on PyPI contained malicious code that masqueraded as a firmware upgrader for hardware wallets. Upon execution, the code downloads and runs an infostealer designed to harvest sensitive data from the infected system.
The infostealer targets cryptocurrency-related files (wallet files, seeds), browser data (passwords, cookies), system credentials (tokens, SSH keys, TOTP seeds), and current clipboard content. Stolen data is exfiltrated to attacker-controlled infrastructure. The malware establishes persistence through scheduled tasks on Windows or LaunchAgent on macOS.
The code includes anti-analysis features: it deliberately avoids execution in CI/CD environments and performs checks to verify the system appears to be a real user machine rather than a sandbox or test environment.
This incident is part of the broader 2026-08-psbt-utils campaign, which is a continuation of the earlier 2026-08-coldcard-helpers campaign targeting cryptocurrency users.
Indicators of compromise
- Packages
- psbt-utils
Remediation
- Immediately uninstall psbt-utils from all systems
- Scan systems for indicators of compromise (scheduled tasks, LaunchAgent entries, suspicious processes)
- Rotate all cryptocurrency wallet credentials and consider moving funds from potentially compromised wallets
- Change all browser passwords and review browser data for unauthorized access
- Rotate SSH keys and review SSH access logs
- Review and revoke any exposed API tokens or cloud credentials
- Monitor systems for signs of persistence mechanisms or data exfiltration
- Check clipboard history for sensitive data that may have been captured
Sources
- GitHub Advisory GHSA-3crg-h67f-c6r9 · GitHub Advisory Database
Cite this entry
"Malicious code in psbt-utils (PyPI)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 4, 2026; last updated August 4, 2026. https://supplychainattack.org/incident/malicious-code-in-psbt-utils-pypi-niqzxl
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- containedcritical
Malicious code in coldcard-helpers (PyPI)
The PyPI package coldcard-helpers was compromised with malicious code that exfiltrates sensitive data including environment variables, cryptocurrency private keys, and SSH keys to a Telegram channel. The malicious payload executes during package installation via a setup.py override.
PyPICompromised package - resolvedhigh
Malicious code in launchdarkly-ai-server-sdk (PyPI)
Malicious code was published in the launchdarkly-ai-server-sdk package on PyPI that exfiltrates basic host information (IP address, username) during installation. The package overrides the install command in setup.py to execute the malicious code.
PyPICompromised package - resolvedcritical
Malicious code in instalogin1234 (PyPI)
The instalogin1234 package on PyPI contained malicious code that harvested user credentials. When users attempted to log in via the fake Instagram CLI, their credentials were exfiltrated to a Discord channel before displaying the legitimate Instagram website.
PyPICompromised package - resolvedcritical
Malicious code in wacve-utils (PyPI)
The PyPI package wacve-utils contained encrypted malicious code implementing an infostealer targeting Linux and Android (Termux) systems. The malware collected files, browser data, and text messages, exfiltrating them to a Telegram channel and downloading/executing remote malicious scripts.
PyPICompromised package