Skip to content
Heist/ feed
Back to feed
Unrated

Malicious code in semveer (PyPI)

Type: advisorySources: OSV

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (d86237b957fd063a0e1fcf250a510b2fb9566ab48652e56fe787d2e1a02e351a) 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. ## Source: kam193 (857ac41cf6480d83178766eebe04f79d075cc1f35be8b13b612c33b22e7ab434) 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
semveer
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 semveer (PyPI)

core-osv · Original source

Published 20 Oct 2026, 18:20 UTC

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (d86237b957fd063a0e1fcf250a510b2fb9566ab48652e56fe787d2e1a02e351a) 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. ## Source: kam193 (857ac41cf6480d83178766eebe04f79d075cc1f35be8b13b612c33b22e7ab434) 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-18102

semveer

Fixed versions: Not specified

Complete source record
{
  "id": "c5885b54c5b1621e9bb722ce4793b2d62d42329e8aea36f7f7209ffdca22bcaa",
  "url": "https://osv.dev/vulnerability/MAL-2026-18102",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Malicious code in semveer (PyPI)",
    "summary": "--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (d86237b957fd063a0e1fcf250a510b2fb9566ab48652e56fe787d2e1a02e351a) 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. ## Source: kam193 (857ac41cf6480d83178766eebe04f79d075cc1f35be8b13b612c33b22e7ab434) 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-18102",
    "products": [
      {
        "name": {
          "value": "semveer",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "1.0.0",
            "evidence": "/affected/0/versions"
          }
        ]
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "MAL-2026-18102",
      "aliases": [
        "MAL-2026-18102"
      ],
      "affected": [
        {
          "package": {
            "name": "semveer",
            "purl": "pkg:pypi/semveer",
            "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/semveer/MAL-2026-18102.json",
            "indicators": {
              "evidence_files": [
                {
                  "path": "setup.py",
                  "tlsh": "c5f0c052c517672a82c2c231ee2204632ff79603db83d8f4359c53545fcd97a8155e09",
                  "sha256": "35decfc9dc81b7c7fa20816aa53e4d2fe2d2ed6b92c8a8780185eeee54e71c22"
                },
                {
                  "path": "semveer/__init__.py",
                  "sha256": "46c663463329acd7039bdef0a9145293aad32e04d7f0dd06ca2719c99f0eb014"
                }
              ],
              "package_integrity": [
                {
                  "hashes": {
                    "md5": "643a6190861c62ab493552ab75890379",
                    "sha256": "d89c112e948539fb785a670d4a585e9a52cea2cf1d0c98db9e21fc29580ef281",
                    "blake2b_256": "65da67882f3ff16fc948ed5c857bd4d694bfaeaebd643af1aae6af16d74cc21c"
                  },
                  "filename": "semveer-1.0.0.tar.gz"
                }
              ]
            }
          }
        }
      ],
      "modified": "2026-10-22T23:45:03.963778319Z",
      "provider": "osv",
      "references": [
        "https://pypi.org/project/semveer/1.0.0/",
        "https://www.virustotal.com/gui/file/e6d96b5500b232bea67f6f9046cfbc22d29a515c42d2af9523a15ebe8a7c4ab7/",
        "https://bad-packages.kam193.eu/pypi/package/semveer"
      ],
      "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-021536",
            "sha256": "d86237b957fd063a0e1fcf250a510b2fb9566ab48652e56fe787d2e1a02e351a",
            "source": "amazon-inspector",
            "versions": [
              "1.0.0"
            ],
            "import_time": "2026-10-20T18:22:19.853823457Z",
            "modified_time": "2026-10-20T18:20:32Z"
          },
          {
            "id": "pypi/2026-10-semvver/semveer",
            "sha256": "857ac41cf6480d83178766eebe04f79d075cc1f35be8b13b612c33b22e7ab434",
            "source": "kam193",
            "versions": [
              "1.0.0"
            ],
            "import_time": "2026-10-20T19:15:26.418202717Z",
            "modified_time": "2026-10-20T18:28:46.433547Z"
          },
          {
            "id": "pypi/2026-10-semvver/semveer",
            "sha256": "f1172f47dbf1fce9daad89fc897732d9a76057de546f40a98ee9b062575e51a2",
            "source": "kam193",
            "versions": [
              "1.0.0"
            ],
            "import_time": "2026-10-22T23:38:53.989440399Z",
            "modified_time": "2026-10-20T18:28:46.433547Z"
          }
        ]
      }
    },
    "related_cves": [],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 410163,
  "published_at": "2026-10-20T18:20:32+00:00"
}