Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Part of a larger attack: 2026-10-semvver published 10 malicious packages. See the full campaign →
Malicious package

semveerPyPI

Advisory published Updated

semveer is a confirmed malicious PyPI package (MAL-2026-18102) that steals credentials and exfiltrates sensitive data (malicious version 1.0.0). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in semveer (PyPI)

MAL-2026-18102
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
pip uninstall semveer

What this malware does

The sdist for 'semveer' ships an inert module (semveer/init.py contains only a version stub) and places all runtime behavior inside setup.py's install hook. On pip install, setup.py calls urllib.request.urlretrieve against https://c2-worker.crawlnet-claim.workers.dev/dl/pyupd, writes the opaque payload to a temporary file, and launches it via subprocess.Popen with start_new_session=True as a detached process. The fetch is wrapped in a bare try/except that suppresses errors, there is no hash or signature verification, the version is not pinned, and the destination host is unrelated to any declared publisher or project homepage. The package name is a one-character edit of the widely used 'semver' name, consistent with a typosquat lure whose only purpose is to trigger the install-time dropper.

During installation, package downloads and executes malware.

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.

Campaign: 2026-10-semvver

Reasons (based on the campaign):

  • Downloads and executes a remote executable.

  • malware

  • typosquatting

Malicious versions

1 flagged
1.0.0

Indicators of compromise (SHA-256)

d86237b957fd063a0e1fcf250a510b2fb9566ab48652e56fe787d2e1a02e351a
857ac41cf6480d83178766eebe04f79d075cc1f35be8b13b612c33b22e7ab434
f1172f47dbf1fce9daad89fc897732d9a76057de546f40a98ee9b062575e51a2

Detection & response playbook

Credential / info stealer
  1. Find it

    Search your lockfiles and build artifacts for semveer (version 1.0.0).

  2. If you installed it — respond

    semveer 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.

  3. Did it already run?

    If semveer 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

No. semveer on PyPI has been identified as a malicious package (version 1.0.0 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-0215362026-10-semvver

References

Credits

  • Amazon Inspector · finder
  • Kamil Mańkowski (kam193) · reporter

Detect & block this

O3 blocks semveer-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

semveer (PyPI) malicious package — MAL-2026-18102 | O3 Security