gpsea (PyPI) · Malicious Code
Affects gpseaSource GCVE Database
Malicious package : remove gpsea and rotate any secrets on hosts that installed it.
Data as of 9 Jul 2026, 10:03 UTC
Malicious package
Published to PyPI · OSV MAL-2026-5316
What to do
Remove gpsea from every project, lockfile and image that pulls it in. Treat any host that installed it as compromised: rotate the credentials, tokens and keys it could read, from a clean machine.
Upgrade gpsea to 0.9.15.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| PyPIgpsea | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
Description
The PyPI package 'gpsea' version 0.9.14 contains a malicious .pth file that executes a Bun-based credential stealer on every Python startup. This stealer downloads the Bun runtime and runs obfuscated JavaScript code to exfiltrate environment variables, .env files, SSH keys, cloud credentials, and other sensitive data to an attacker-controlled GitHub repository. The campaign is linked to the TeamPCP threat actor and known as Hades/Miasma or Shai-Hulud. The malicious code also attempts persistence and spreading by publishing infected packages using stolen credentials and may perform destructive actions if invalid GitHub tokens are detected. The package includes evasion techniques such as sandbox detection and uses obfuscation to hinder analysis.
References
- socket.dev/blog/shai-hulud-descends-to-hades-miasma-pypi-wave (opens in a new tab)
- o3.security/blog/pypi-supply-chain-attack-pth-file-miasma (opens in a new tab)
- bad-packages.kam193.eu/pypi/campaign/2026-06-compr-woodpecker (opens in a new tab)
- socket.dev/blog/mini-shai-hulud-miasma-and-hades-worms-target-bioinformatics-and-mcp-developers-via-malicious (opens in a new tab)
- pypi.org/project/gpsea/0.9.14/ (opens in a new tab)