Skip to content
Heist/ feed
Back to feed
Unrated

Malicious code in semverr (PyPI)

Type: advisorySources: OSV

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (110e0a64dd80654ca98caa5e291499d158a39eb66c1d35efe896a42095c85118) semverr is a near-empty package (a one-line __version__) whose name resembles the popular semver library. Its setup.py runs at install time (invoked by pip during `pip install`) and calls urllib.request.urlretrieve to fetch an opaque binary from https://c2-worker.crawlnet-claim.workers.dev/dl/pyupd, writes it to a PID-suffixed path in the system temp directory, and launches it via subprocess.Popen with start_new_session=True and stdout/stderr redirected to DEVNULL so the detached child survives the install and runs silently. The fetch is unpinned, unverified (no hash or signature check), and directed at an anonymous Cloudflare Workers host unrelated to any declared publisher. Exceptions in the fetch/exec path are swallowed so install still appears to succeed. The package has no other functionality. ## Source: kam193 (0f1ce7737886cf79e2762db6431449cafab516651f2163e202faaf449a139ecb) 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

Products
semverr
Affected versions
1.0.0
Fixed versions
Not specified
CVEs
Not specified
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 20:08 UTC · Revision 1

Source evidence

Malicious code in semverr (PyPI)

core-osv · Original source

Published 20 Oct 2026, 18:20 UTC

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (110e0a64dd80654ca98caa5e291499d158a39eb66c1d35efe896a42095c85118) semverr is a near-empty package (a one-line __version__) whose name resembles the popular semver library. Its setup.py runs at install time (invoked by pip during `pip install`) and calls urllib.request.urlretrieve to fetch an opaque binary from https://c2-worker.crawlnet-claim.workers.dev/dl/pyupd, writes it to a PID-suffixed path in the system temp directory, and launches it via subprocess.Popen with start_new_session=True and stdout/stderr redirected to DEVNULL so the detached child survives the install and runs silently. The fetch is unpinned, unverified (no hash or signature check), and directed at an anonymous Cloudflare Workers host unrelated to any declared publisher. Exceptions in the fetch/exec path are swallowed so install still appears to succeed. The package has no other functionality. ## Source: kam193 (0f1ce7737886cf79e2762db6431449cafab516651f2163e202faaf449a139ecb) 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

osv:MAL-2026-18103

semverr

Fixed versions: Not specified

Complete source record
{
  "id": "88bf28cc35ba2a8c1bcefbd8102b3e2a56090383f20a49941747816d8bdad62f",
  "url": "https://osv.dev/vulnerability/MAL-2026-18103",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Malicious code in semverr (PyPI)",
    "summary": "--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (110e0a64dd80654ca98caa5e291499d158a39eb66c1d35efe896a42095c85118) semverr is a near-empty package (a one-line __version__) whose name resembles the popular semver library. Its setup.py runs at install time (invoked by pip during `pip install`) and calls urllib.request.urlretrieve to fetch an opaque binary from https://c2-worker.crawlnet-claim.workers.dev/dl/pyupd, writes it to a PID-suffixed path in the system temp directory, and launches it via subprocess.Popen with start_new_session=True and stdout/stderr redirected to DEVNULL so the detached child survives the install and runs silently. The fetch is unpinned, unverified (no hash or signature check), and directed at an anonymous Cloudflare Workers host unrelated to any declared publisher. Exceptions in the fetch/exec path are swallowed so install still appears to succeed. The package has no other functionality. ## Source: kam193 (0f1ce7737886cf79e2762db6431449cafab516651f2163e202faaf449a139ecb) 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",
    "evidence": "osv:MAL-2026-18103",
    "products": [
      {
        "name": {
          "value": "semverr",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "1.0.0",
            "evidence": "/affected/0/versions"
          }
        ]
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "MAL-2026-18103",
      "aliases": [
        "MAL-2026-18103"
      ],
      "affected": [
        {
          "package": {
            "name": "semverr",
            "purl": "pkg:pypi/semverr",
            "ecosystem": "PyPI"
          },
          "versions": [
            "1.0.0"
          ],
          "database_specific": {
            "cwes": [
              {
                "name": "Embedded Malicious Code",
                "cweId": "CWE-506",
                "description": "The product contains code that appears to be malicious in nature."
              }
            ],
            "source": "https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/semverr/MAL-2026-18103.json",
            "indicators": {
              "evidence_files": [
                {
                  "path": "setup.py",
                  "tlsh": "75f0c052c517662682c2c231ee2204622ff79603db93d8f4399c53546fcd87a8155a09",
                  "sha256": "143c4e3a6ef216b21d97d3b7b0a79fba5e58f19256f3e99d43bec94a12b144b6"
                }
              ],
              "package_integrity": [
                {
                  "hashes": {
                    "md5": "ac71eaeafc6805191a068d426afd4e3a",
                    "sha256": "d0ed785081f4955f30f648636988793673d3b8315ecfe736b1e9d8505145f925",
                    "blake2b_256": "31277f95a999f2da5839f3a9a0853ff7f79a4e901d0c1263e36ec3681c07f7c2"
                  },
                  "filename": "semverr-1.0.0.tar.gz"
                }
              ]
            }
          }
        }
      ],
      "modified": "2026-10-22T23:45:03.654502219Z",
      "provider": "osv",
      "references": [
        "https://pypi.org/project/semverr/1.0.0/",
        "https://www.virustotal.com/gui/file/e6d96b5500b232bea67f6f9046cfbc22d29a515c42d2af9523a15ebe8a7c4ab7/",
        "https://bad-packages.kam193.eu/pypi/package/semverr"
      ],
      "provider_metadata": {
        "iocs": {
          "urls": [
            "https://c2-worker.crawlnet-claim.workers.dev/dl/pyupd"
          ],
          "domains": [
            "c2-worker.crawlnet-claim.workers.dev"
          ]
        },
        "malicious-packages-origins": [
          {
            "id": "IN-MAL-2026-021534",
            "sha256": "110e0a64dd80654ca98caa5e291499d158a39eb66c1d35efe896a42095c85118",
            "source": "amazon-inspector",
            "versions": [
              "1.0.0"
            ],
            "import_time": "2026-10-20T18:22:19.73066709Z",
            "modified_time": "2026-10-20T18:20:18Z"
          },
          {
            "id": "pypi/2026-10-semvver/semverr",
            "sha256": "0f1ce7737886cf79e2762db6431449cafab516651f2163e202faaf449a139ecb",
            "source": "kam193",
            "versions": [
              "1.0.0"
            ],
            "import_time": "2026-10-20T19:15:26.420761428Z",
            "modified_time": "2026-10-20T18:28:24.555451Z"
          },
          {
            "id": "pypi/2026-10-semvver/semverr",
            "sha256": "c2fe0d9bc88b49e8a427bd320ffdd8b2d6830b12dc03997a0cd4597e9a015482",
            "source": "kam193",
            "versions": [
              "1.0.0"
            ],
            "import_time": "2026-10-22T23:38:53.990242826Z",
            "modified_time": "2026-10-20T18:28:24.555451Z"
          }
        ]
      }
    },
    "related_cves": [],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 410161,
  "published_at": "2026-10-20T18:20:18+00:00"
}