{"id":"MAL-2026-16131","kind":"package","aliases":["MAL-2026-16131"],"related":[],"title":"Malicious code in aitextutils-py (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (d70c1bd80ce0363cc25271a25e742ebe8c4346c872456f78b1ac039ef4641a67)\nThe package was found to contain malicious code or consuming dependency that contains malicious code\n\n## Source: kam193 (59b5d893cd227654dae3bd7964e54ba20c99963660993e4239f34bba0d50b772)\nThis package executes code from malicious dependency, which hides code downloading script, which then downloads and executes a heavily obfuscated final stage. The remote stages are hosted on a domain presenting a suspicious-looking corporate website. The downloaded code establishes persistence e.g. as \"anymeetly-cameradriver\" systemd service.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-09-aitextkit-py\n\n\nReasons (based on the campaign):\n\n\n - obfuscation\n\n\n - Downloads and executes a remote malicious script.\n\n\n - persistence\n\n\n - infostealer\n\n\n - exfiltration-browser-data\n\n\n - rat\n\n\n - The package contains code to execute remote commands (probably limited to a specific set) on the victim's machine.","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"aitextutils-py","fixed":[],"affected":"= 0.1.0; = 0.1.1","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-09-11T15:24:15+00:00","first_seen_at":"2026-10-26T20:51:58+00:00","triaged_at":"2026-10-26T21:10:31+00:00","updated_at":"2026-10-26T21:10:31+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-09':112C '-16131':10A,13A '-2026':9A,12A '2026':111C '59b5d893cd227654dae3bd7964e54ba20c99963660993e4239f34bba0d50b772':50C 'aitextkit':114C 'aitextkit-pi':113C 'aitextutil':5A 'aitextutils':15A 'aitextutils-pi':4A 'aitextutils-py':14A 'amazon':30C 'amazon-inspector':29C 'anymeet':96C 'anymeetly-cameradriv':95C 'base':117C 'browser':133C 'cameradriv':97C 'campaign':103C,110C,120C 'categori':100C 'clear':105C 'code':2A,40C,47C,54C,60C,90C,139C 'command':143C 'consum':42C 'contain':38C,45C,138C 'corpor':86C 'd70c1bd80ce0363cc25271a25e742ebe8c4346c872456f78b1ac039ef4641a67':32C 'data':134C 'depend':43C,57C 'detail':21C 'domain':80C 'download':61C,65C,89C,122C 'e.g':93C 'edit':24C 'establish':91C 'execut':53C,67C,124C,141C 'exfiltr':132C 'exfiltration-browser-data':131C 'final':71C 'found':36C 'heavili':69C 'hide':59C 'host':77C 'infosteal':109C,130C 'inspector':31C 'intent':107C 'kam193':49C 'like':108C 'limit':145C 'line':27C 'look':85C 'machin':154C 'mal':8A,11A 'malici':1A,17B,39C,46C,56C,101C,106C,127C 'obfusc':70C,121C 'packag':18B,34C,52C,137C 'per':19C 'persist':92C,129C 'present':81C 'probabl':144C 'py':6A,16A,115C 'pypi':7A 'rat':135C 'reason':116C 'remot':74C,126C,142C 'script':62C,128C 'servic':99C 'set':149C 'sourc':20C,28C,48C 'specif':148C 'stage':72C,75C 'suspici':84C 'suspicious-look':83C 'systemd':98C 'victim':152C 'websit':87C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-09-11T15:24:15+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-16131","url":"https://osv.dev/vulnerability/MAL-2026-16131","severity":"critical","published_at":"2026-09-11T15:24:15+00:00","modified_at":"2026-09-23T05:30:07+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"}