{"id":"MAL-2026-15863","kind":"package","aliases":["MAL-2026-15863"],"related":[],"title":"Malicious code in uvhttp-custom (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (bf8bf69e0edd8a79c920c35d2c49e722b38d801c07401dfb673bdb1beb6ea3fc)\nsetup.py contains an obfuscated payload of the form `(lambda __: exec(__import__('base64').b64decode('...').decode()))(None)` alongside an otherwise-benign setuptools import. The decoded payload writes a bundled script.ps1 to disk and invokes `powershell -ExecutionPolicy Bypass -File script.ps1`. The PowerShell script uses System.Net.WebClient.DownloadFile to fetch a Windows executable from cdn.discordapp.com/attachments/1532996358427115552/1539384056284717066/enlisted_launcher_1.0.3.190-movn8hpfe.exe into %TEMP%\\file.exe and launches it via Start-Process with -WindowStyle Hidden. No hash or signature verification is performed. The payload also invokes `os.system(\"calc\")`. Running `pip install uvhttp-custom` on Windows therefore causes the installer's machine to download and silently execute an opaque, unsigned binary from an anonymous Discord CDN URL.\n\n## Source: kam193 (9d56fe693f2b6e693e195640269a9ad95c8ab5eb94c897bbc711e897177c4cc6)\nDuring installation, obfuscated code downloads and executes an executable. It appears to be a game launcher.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-09-uvhttp-custom\n\n\nReasons (based on the campaign):\n\n\n - The package overrides the install command in setup.py to execute malicious code during installation.\n\n\n - Downloads and executes a remote executable.\n\n\n - obfuscation","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"uvhttp-custom","fixed":[],"affected":"= 1.7.9; = 1.8.1; = 1.9.9","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-09-03T16:52:46+00:00","first_seen_at":"2026-10-26T20:51:56+00:00","triaged_at":"2026-10-26T21:12:36+00:00","updated_at":"2026-10-26T21:12:36+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-09':171C '-15863':10A,13A '-2026':9A,12A '/attachments/1532996358427115552/1539384056284717066/enlisted_launcher_1.0.3.190-movn8hpfe.exe':84C '2026':170C '9d56fe693f2b6e693e195640269a9ad95c8ab5eb94c897bbc711e897177c4cc6':142C 'alongsid':48C 'also':107C 'amazon':30C 'amazon-inspector':29C 'anonym':136C 'appear':153C 'b64decode':45C 'base':176C 'base64':44C 'benign':52C 'bf8bf69e0edd8a79c920c35d2c49e722b38d801c07401dfb673bdb1beb6ea3fc':32C 'binari':133C 'bundl':60C 'bypass':68C 'calc':110C 'campaign':162C,169C,179C 'categori':159C 'caus':120C 'cdn':138C 'cdn.discordapp.com':83C 'cdn.discordapp.com/attachments/1532996358427115552/1539384056284717066/enlisted_launcher_1.0.3.190-movn8hpfe.exe':82C 'clear':164C 'code':2A,146C,191C 'command':185C 'contain':34C 'custom':6A,16A,116C,174C 'decod':46C,56C 'detail':21C 'discord':137C 'disk':63C 'download':126C,147C,194C 'edit':24C 'exec':42C 'execut':80C,129C,149C,151C,189C,196C,199C 'executionpolici':67C 'fetch':77C 'file':69C 'file.exe':87C 'form':40C 'game':157C 'hash':99C 'hidden':97C 'import':43C,54C 'infosteal':168C 'inspector':31C 'instal':113C,122C,144C,184C,193C 'intent':166C 'invok':65C,108C 'kam193':141C 'lambda':41C 'launch':89C 'launcher':158C 'like':167C 'line':27C 'machin':124C 'mal':8A,11A 'malici':1A,17B,160C,165C,190C 'none':47C 'obfusc':36C,145C,200C 'opaqu':131C 'os.system':109C 'otherwis':51C 'otherwise-benign':50C 'overrid':182C 'packag':18B,181C 'payload':37C,57C,106C 'per':19C 'perform':104C 'pip':112C 'powershel':66C,72C 'process':94C 'pypi':7A 'reason':175C 'remot':198C 'run':111C 'script':73C 'script.ps1':61C,70C 'setup.py':33C,187C 'setuptool':53C 'signatur':101C 'silent':128C 'sourc':20C,28C,140C 'start':93C 'start-process':92C 'system.net.webclient.downloadfile':75C 'temp':86C 'therefor':119C 'unsign':132C 'url':139C 'use':74C 'uvhttp':5A,15A,115C,173C 'uvhttp-custom':4A,14A,114C,172C 'verif':102C 'via':91C 'window':79C,118C 'windowstyl':96C 'write':58C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-09-03T16:52:46+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-15863","url":"https://osv.dev/vulnerability/MAL-2026-15863","severity":"critical","published_at":"2026-09-03T16:52:46+00:00","modified_at":"2026-09-04T01:00:06+00:00","first_seen_at":"2026-10-26T20:51:56+00:00","fetched_at":"2026-10-26T20:51:56+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"}