GHSA-93qj-5q5v-3c2h: Pip/pantheon-agents vulnerability
Summary The PyPI account that publishes pantheon-agents was compromised in the June 2026 "Hades" PyPI supply-chain attack (Mini Shai-Hulud / Miasma lineage). The attacker used a stolen, long-lived PyPI API token to upload trojanized releases pantheon-agents 0.6.1 and 0.6.2 directly to PyPI.
Only the PyPI artifacts are affected. The GitHub source repository, its git tags, and all other distribution channels are clean — no malicious code was committed to the repository.
Affected - pantheon-agents 0.6.1 and 0.6.2 on PyPI.
Not affected: installs from the GitHub source, version 0.6.0 and earlier, and the Desktop / Online apps.
Indicators of compromise The malicious wheels ship a -setup.pth file that executes on Python startup. It downloads the Bun JavaScript runtime and runs an obfuscated credential stealer (index.js) that harvests and exfiltrates credentials reachable from the host — environment variables, ~/.pypirc, ~/.npmrc, cloud credentials (~/.aws, etc.), SSH keys, and API tokens.
Check your environment's site-packages for an unexpected -setup.pth, and your home directory for index.js or a Bun runtime (~/.bun).
Impact Anyone who pip installed pantheon-agents 0.6.1 or 0.6.2 should assume every credential present on that machine has been exfiltrated.
Remediation 1. Do not install pantheon-agents from PyPI until distribution resumes. 2. If you installed 0.6.1 or 0.6.2: - Run pip uninstall pantheon-agents immediately and check for the IoCs above. - Rotate every credential that was present on that machine (API keys, tokens, SSH keys, cloud credentials). 3. Install only from the clean GitHub source: pip install "git+https://github.com/aristoteleo/PantheonOS.git"
Status The PyPI account is suspended and the malicious token has been disabled. PyPI distribution will resume after account recovery and migration to PyPI Trusted Publishing (OIDC). Sibling projects by the same maintainer (e.g. executor-engine, funcdesc, cmd2func, pantheon-toolsets, coolbox, ufish, magique, executor-http) were hit by the same campaign and are being remediated separately.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
pip/pantheon-agentsto a version that resolves this vulnerability.Fixed in 0.6.4 - Upgrade
Upgrade
pantheon-agentsto a version that resolves this vulnerability.Fixed in 0.6.0 - Remove
Remove
pantheon-agentsfrom your environment.Run `pip uninstall pantheon-agents` immediately.
- Configuration
Do not install `pantheon-agents` from PyPI until distribution resumes.
pip Do not install pantheon-agents from PyPI = true - Compensating control
If you installed `pantheon-agents` 0.6.1 or 0.6.2, assume every credential on that machine has been exfiltrated and take incident response actions accordingly (post-uninstall validation and credential rotation already covered).
- Operational
Rotate every credential that was present on the machine (API keys, tokens, SSH keys, cloud credentials), since any installation of `pantheon-agents` 0.6.1 or 0.6.2 should be treated as exfiltrated.
- Operational
Check for IoCs: inspect the environment's `site-packages` for an unexpected `*-setup.pth` and the home directory for `_index.js` or a Bun runtime directory `~/.bun`.
Event History
Frequently Asked Questions
Which installations are exposed?
Only pantheon-agents 0.6.1 and 0.6.2 artifacts obtained from PyPI are affected. GitHub source installs, git tags, version 0.6.0 and earlier, and the Desktop and Online apps are not affected.
What happens when a malicious installation runs?
The malicious wheel includes a *-setup.pth file that executes at Python startup. It downloads the Bun JavaScript runtime and runs an obfuscated credential stealer that can harvest and exfiltrate environment variables, .pypirc and .npmrc files, cloud credentials, SSH keys, and API tokens reachable from the host.
How can I check whether a host may have been affected?
Inspect the environment's site-packages directory for an unexpected *-setup.pth file. Also check the user's home directory for _index.js or a Bun runtime under ~/.bun.
What clean alternatives are identified if the affected PyPI releases cannot be used?
Version 0.6.0 and earlier are identified as not affected. Installing from the GitHub source is also identified as clean.