{"id":"MAL-2026-17461","kind":"package","aliases":["MAL-2026-17461"],"related":[],"title":"Malicious code in voxel-tts (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (31bcd85c4464339b45ec445d1c402ecbc97ab4b50b71738d1fc3873c88f9cff5)\nThe package advertises text-to-speech inference but contains no model, audio, or inference code. Importing voxel_tts loads voxel_tts/harness.py, which instantiates a module-level Harness(); on run() it chmods and executes a bundled ~8MB ELF at voxel_tts/bin/voxel-core. The ELF is invoked with a JSON configuration matching the XMRig-family CPU mining schema (pools/user/pass/keepalive/tls, cpu.threads, cpu.mem-locked, cache-budget), and the pool-protocol key 'pools' is split across string concatenation to evade static scanners. The pool destination is reconstructed at runtime by base64-decoding two fragments ('MTg1LjE5NA==', 'MTc3LjI0OQ==') and joining them with '.', yielding 185.194.177.249:443. A 40MB cloudflared binary is also bundled at voxel_tts/bin/cloudflared and launched as 'cloudflared access tcp --hostname <host> --url 127.0.0.1:<port>' so that outbound mining traffic egresses through Cloudflare Access to an author-controlled hostname, hiding the real pool IP from host network logs; in-code comments acknowledge this is to avoid 'direct egress to the coordinator's own address'. In parallel, a _Progress helper emits synthetic 'model | step N/250000 loss=... tok/s=... lr=6e-5 ep=...' lines once per minute as a cover story to make the workload appear to be ML training. Net effect: installing and using this package runs a cryptominer on the installer's CPU, monetizing their compute for the author, while actively evading detection via destination obfuscation, tunneled egress, and a fabricated training-progress UI.\n\n## Source: kam193 (59ef2094ba4f759a0f896ff0af35b1fd19442db3cf8212a39fde46d5713c807d)\nThe package imitates real activity and instead deploys a coin miner.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-voxeval\n\n\nReasons (based on the campaign):\n\n\n - cryptominer","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"voxel-tts","fixed":[],"affected":"= 0.5.0; = 0.5.1","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-03T04:38:14+00:00","first_seen_at":"2026-10-26T20:51:58+00:00","triaged_at":"2026-10-26T21:08:21+00:00","updated_at":"2026-10-26T21:08:21+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-10':291C '-17461':10A,13A '-2026':9A,12A '127.0.0.1':154C '185.194.177.249':134C '2026':290C '31bcd85c4464339b45ec445d1c402ecbc97ab4b50b71738d1fc3873c88f9cff5':32C '40mb':137C '443':135C '59ef2094ba4f759a0f896ff0af35b1fd19442db3cf8212a39fde46d5713c807d':267C '6e-5':209C '8mb':70C 'access':150C,163C 'acknowledg':183C 'across':107C 'activ':250C,272C 'address':195C 'advertis':35C 'also':141C 'amazon':30C 'amazon-inspector':29C 'appear':223C 'audio':45C 'author':167C,248C 'author-control':166C 'avoid':187C 'base':294C 'base64':123C 'base64-decoding':122C 'binari':139C 'budget':97C 'bundl':69C,142C 'cach':96C 'cache-budget':95C 'campaign':282C,289C,297C 'categori':279C 'chmod':65C 'clear':284C 'cloudflar':138C,149C,162C 'code':2A,48C,181C 'coin':277C 'comment':182C 'comput':245C 'concaten':109C 'configur':82C 'contain':42C 'control':168C 'coordin':192C 'cover':217C 'cpu':88C,242C 'cpu.mem':93C 'cpu.threads':92C 'cryptomin':237C,298C 'decod':124C 'deploy':275C 'destin':116C,254C 'detail':21C 'detect':252C 'direct':188C 'edit':24C 'effect':229C 'egress':160C,189C,257C 'elf':71C,76C 'emit':201C 'ep':210C 'evad':111C,251C 'execut':67C 'fabric':260C 'famili':87C 'fragment':126C 'har':61C 'helper':200C 'hide':170C 'host':176C 'hostnam':152C,169C 'imit':270C 'import':49C 'in-cod':179C 'infer':40C,47C 'infosteal':288C 'inspector':31C 'instal':230C,240C 'instanti':56C 'instead':274C 'intent':286C 'invok':78C 'ip':174C 'join':130C 'json':81C 'kam193':266C 'key':103C 'launch':147C 'level':60C 'like':287C 'line':27C,211C 'load':52C 'lock':94C 'log':178C 'loss':206C 'lr':208C 'make':220C 'mal':8A,11A 'malici':1A,17B,280C,285C 'match':83C 'mine':89C,158C 'miner':278C 'minut':214C 'ml':226C 'model':44C,203C 'modul':59C 'module-level':58C 'monet':243C 'mtc3lji0oq':128C 'mtg1lje5na':127C 'n/250000':205C 'net':228C 'network':177C 'obfusc':255C 'outbound':157C 'packag':18B,34C,234C,269C 'parallel':197C 'per':19C,213C 'pool':101C,104C,115C,173C 'pool-protocol':100C 'pools/user/pass/keepalive/tls':91C 'progress':199C,263C 'protocol':102C 'pypi':7A 'real':172C,271C 'reason':293C 'reconstruct':118C 'run':63C,235C 'runtim':120C 'scanner':113C 'schema':90C 'sourc':20C,28C,265C 'speech':39C 'split':106C 'static':112C 'step':204C 'stori':218C 'string':108C 'synthet':202C 'tcp':151C 'text':37C 'text-to-speech':36C 'tok/s':207C 'traffic':159C 'train':227C,262C 'training-progress':261C 'tts':6A,16A,51C 'tts/bin/cloudflared':145C 'tts/bin/voxel-core':74C 'tts/harness.py':54C 'tunnel':256C 'two':125C 'ui':264C 'url':153C 'use':232C 'via':253C 'voxel':5A,15A,50C,53C,73C,144C 'voxel-tt':4A 'voxel-tts':14A 'voxev':292C 'workload':222C 'xmrig':86C 'xmrig-famili':85C 'yield':133C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-03T04:38:14+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-17461","url":"https://osv.dev/vulnerability/MAL-2026-17461","severity":"critical","published_at":"2026-10-03T04:38:14+00:00","modified_at":"2026-10-04T23:45:21+00:00","first_seen_at":"2026-10-26T20:51:58+00:00","fetched_at":"2026-10-26T20:51:58+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"}