joule-btp-extension (PyPI) · Malicious Code
Affects joule-btp-extensionSource GCVE Database
Malicious package : remove joule-btp-extension and rotate any secrets on hosts that installed it.
Data as of 26 Oct 2026, 16:15 UTC
Malicious package
Published to PyPI · OSV MAL-2026-13732
What to do
Remove joule-btp-extension 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.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| PyPIjoule-btp-extension | 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 'joule-btp-extension' PyPI package versions 0.1.0, 0.1.1, 0.1.3, 0.1.4, and 0.1.6 contain malicious code that executes during installation. The setup.py script collects sensitive system files and environment variables, reads user files, and exfiltrates this data to a hardcoded attacker URL. It also creates a marker file in the virtual environment's bin directory for persistence and includes code to establish a reverse shell, enabling remote command execution. The package is identified as a proof-of-concept supply-chain attack targeting SAP Joule Desktop on macOS but was publicly uploaded, posing a risk to users who install it.
References
- bad-packages.kam193.eu/pypi/package/joule-btp-extension (opens in a new tab)
- pypi.org/project/joule-btp-extension/0.1.0/ (opens in a new tab)
- pypi.org/project/joule-btp-extension/0.1.6/ (opens in a new tab)
- pypi.org/project/joule-btp-extension/0.1.3/ (opens in a new tab)
- pypi.org/project/joule-btp-extension/0.1.4/ (opens in a new tab)
- pypi.org/project/joule-btp-extension/0.1.1/ (opens in a new tab)