{"id":"MAL-2026-18101","kind":"package","aliases":["MAL-2026-18101"],"related":[],"title":"Malicious code in semmver (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (8de323d5976a26f2d9540680d1706a53bcb3ca743409821e83f7a2f1b60e8594)\nThe package is a typosquat-style empty stub (semmver/__init__.py contains only __version__ = '1.0.0') whose only functional code is in setup.py. At pip install time, setup.py calls urllib.request.urlretrieve to download an opaque, unpinned binary from https://c2-worker.crawlnet-claim.workers.dev/dl/pyupd, writes it to a temporary path, and launches it via subprocess.Popen with start_new_session=True and stdout/stderr suppressed, detaching it from the installer process. There is no hash or signature verification, no pinning, and the destination host is unrelated to any legitimate utility purpose; the subdomain is self-labeled 'c2-worker'. Installing this package executes attacker-controlled code on the installer's machine.\n\n## Source: kam193 (7b4ffebc6fe59fc1db7154c0a7ed9e6788d6a27ccea81fe1f4df432578b2c4d6)\nDuring installation, package downloads and executes malware.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-semvver\n\n\nReasons (based on the campaign):\n\n\n - Downloads and executes a remote executable.\n\n\n - malware\n\n\n - typosquatting","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"semmver","fixed":[],"affected":"= 1.0.0","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-20T18:20:25+00:00","first_seen_at":"2026-10-26T20:52:02+00:00","triaged_at":"2026-10-26T20:59:55+00:00","updated_at":"2026-10-26T21:05:48+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-10':156C '-18101':8A,11A '-2026':7A,10A '/dl/pyupd,':66C '1.0.0':42C '2026':155C '7b4ffebc6fe59fc1db7154c0a7ed9e6788d6a27ccea81fe1f4df432578b2c4d6':136C '8de323d5976a26f2d9540680d1706a53bcb3ca743409821e83f7a2f1b60e8594':28C 'amazon':26C 'amazon-inspector':25C 'attack':126C 'attacker-control':125C 'base':159C 'binari':62C 'c2':119C 'c2-worker':118C 'c2-worker.crawlnet-claim.workers.dev':65C 'c2-worker.crawlnet-claim.workers.dev/dl/pyupd,':64C 'call':55C 'campaign':147C,154C,162C 'categori':144C 'clear':149C 'code':2A,46C,128C 'contain':39C 'control':127C 'destin':103C 'detach':86C 'detail':17C 'download':58C,140C,163C 'edit':20C 'empti':36C 'execut':124C,142C,165C,168C 'function':45C 'hash':95C 'host':104C 'infosteal':153C 'inspector':27C 'instal':52C,90C,121C,131C,138C 'intent':151C 'kam193':135C 'label':117C 'launch':74C 'legitim':109C 'like':152C 'line':23C 'machin':133C 'mal':6A,9A 'malici':1A,13B,145C,150C 'malwar':143C,169C 'new':80C 'opaqu':60C 'packag':14B,30C,123C,139C 'path':72C 'per':15C 'pin':100C 'pip':51C 'process':91C 'purpos':111C 'pypi':5A 'reason':158C 'remot':167C 'self':116C 'self-label':115C 'semmver':4A,12A 'semmver/__init__.py':38C 'semvver':157C 'session':81C 'setup.py':49C,54C 'signatur':97C 'sourc':16C,24C,134C 'start':79C 'stdout/stderr':84C 'stub':37C 'style':35C 'subdomain':113C 'subprocess.popen':77C 'suppress':85C 'temporari':71C 'time':53C 'true':82C 'typosquat':34C,170C 'typosquat-styl':33C 'unpin':61C 'unrel':106C 'urllib.request.urlretrieve':56C 'util':110C 'verif':98C 'version':41C 'via':76C 'whose':43C 'worker':120C 'write':67C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-20T18:20:25+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-18101","url":"https://osv.dev/vulnerability/MAL-2026-18101","severity":"critical","published_at":"2026-10-20T18:20:25+00:00","modified_at":"2026-10-22T23:45:03+00:00","first_seen_at":"2026-10-26T20:52:02+00:00","fetched_at":"2026-10-26T20:52:02+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}