{"id":"MAL-2026-18094","kind":"package","aliases":["MAL-2026-18094"],"related":[],"title":"Malicious code in pafex (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (8ad1f51a6f081ac9e46b3d3ffa2d0b9b150b1600caf826d940f4e3d1992cda16)\nIn this campaign, the main package (resion) has an embeded pickle disguised as a config. A related dependency (pafex) contains code to load the pickle. During unpickling, malicious code embeded in the pickle file is automatically executed. It then establishes persistence via a PTH file and downloads the next stage payload. During analysis, the final remote payload was just a stub\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-webreader\n\n\nReasons (based on the campaign):\n\n\n - files-exfiltration\n\n\n - obfuscation\n\n\n - The malicious code is intentionally included in a dependency of the package\n\n\n - Downloads and executes a remote malicious script.\n\n\n - The package contains code to execute remote commands (probably limited to a specific set) on the victim's machine.\n\n\n - rat\n\n\n - persistence\n\n\n - abuses-pth","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"pafex","fixed":[],"affected":"= 2.3","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-20T13:23:10+00:00","first_seen_at":"2026-10-26T20:52:00+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':100C '-18094':8A,11A '-2026':7A,10A '2026':99C '8ad1f51a6f081ac9e46b3d3ffa2d0b9b150b1600caf826d940f4e3d1992cda16':26C 'abus':152C 'abuses-pth':151C 'analysi':79C 'automat':62C 'base':103C 'campaign':29C,91C,98C,106C 'categori':88C 'clear':93C 'code':2A,47C,55C,113C,133C 'command':137C 'config':41C 'contain':46C,132C 'depend':44C,119C 'detail':17C 'disguis':38C 'download':73C,123C 'edit':20C 'embed':36C,56C 'establish':66C 'execut':63C,125C,135C 'exfiltr':109C 'file':60C,71C,108C 'files-exfiltr':107C 'final':81C 'includ':116C 'infosteal':97C 'intent':95C,115C 'kam193':25C 'like':96C 'limit':139C 'line':23C 'load':49C 'machin':148C 'main':31C 'mal':6A,9A 'malici':1A,13B,54C,89C,94C,112C,128C 'next':75C 'obfusc':110C 'packag':14B,32C,122C,131C 'pafex':4A,12A,45C 'payload':77C,83C 'per':15C 'persist':67C,150C 'pickl':37C,51C,59C 'probabl':138C 'pth':70C,153C 'pypi':5A 'rat':149C 'reason':102C 'relat':43C 'remot':82C,127C,136C 'resion':33C 'script':129C 'set':143C 'sourc':16C,24C 'specif':142C 'stage':76C 'stub':87C 'unpickl':53C 'via':68C 'victim':146C 'webread':101C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-20T13:23:10+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-18094","url":"https://osv.dev/vulnerability/MAL-2026-18094","severity":"critical","published_at":"2026-10-20T13:23:10+00:00","modified_at":"2026-10-20T14:30:03+00:00","first_seen_at":"2026-10-26T20:52:00+00:00","fetched_at":"2026-10-26T20:52:00+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"}