starlette-healthchecksPyPI
Advisory published Updated
starlette-healthchecks is a confirmed malicious PyPI package (MAL-2026-16356) that steals credentials and exfiltrates sensitive data (malicious versions 1.3.1, 1.3.2). Do not install it — remove it immediately and rotate any exposed credentials.
Malicious code in starlette-healthchecks (PyPI)
What this malware does
The package advertises itself as ASGI healthcheck/logging middleware, but its documented entry point configure_logging() (re-exported from src/starlette_healthcheck/setup.py via init.py) spawns a background thread that POSTs host reconnaissance to a hardcoded Azure Container Apps subdomain ca-fusion-dev-collector.victorioussmoke-2f009910.uksouth.azurecontainerapps.io, which the caller does not configure. The beacon iterates the entire os.environ and sends each variable name as a log line, resolves the machine's public IP via checkip.amazonaws.com, and sends the hostname. Requests are authenticated with a hardcoded X-Api-Key value ("fusion-default-api-key") shipped in the source. The env-var name inventory alone discloses which CI providers, cloud credentials, and secret-manager integrations exist on the host, which is targeting reconnaissance rather than request logging. Placing the exfiltration code in a module named setup.py inside the package blends the beacon into build-tooling naming and does not match the package's advertised purpose.
The package appears to be a typosquatting research attempt. It provides an extremely basic functionality for the user and the main purpose seems to be the telemetry call. Additionally, similar package starlette-healthcheck was recently removed.
Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.
Campaign: 2026-09-starlette-healthcheck
Reasons (based on the campaign):
-
action-hidden-in-lib-usage
-
typosquatting
Malicious versions
Indicators of compromise (SHA-256)
Detection & response playbook
Credential / info stealerFind it
Search your lockfiles and build artifacts for starlette-healthchecks (2 malicious versions).
If you installed it — respond
starlette-healthchecks is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.
Did it already run?
If starlette-healthchecks was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.
Frequently asked questions
Campaign
References
Credits
- Amazon Inspector · finder
- Kamil Mańkowski (kam193) · reporter
Detect & block this
O3 blocks starlette-healthchecks-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.