{"id":"MAL-2026-18219","kind":"package","aliases":["MAL-2026-18219"],"related":[],"title":"Malicious code in onsokets (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (86e89c263593521f9795193907958f4c642d34253fe9a65526dea1c681808760)\nonsokets/run.py walks the Android primary storage path /storage/emulated/0/, collects files ending in.json,.py,.pyrubi, and.txt, zips them by extension, and POSTs each archive to https://tapi.bale.ai/bot<token>/sendDocument with chat_id 5263487757. The Bale bot token is hardcoded in the source as the default for BALE_BOT_TOKEN, so installing or running this package exfiltrates installer-owned source, configuration, and text files to an author-controlled Bale chat. The destination is not caller-configurable in any meaningful sense and does not relate to any declared purpose of the package.\n\n## Source: kam193 (844774819aa502a53d6d364b6636fa62eb412fe8b30973c226aeb9b7b89865f9)\nThe package contains code for automated files exfiltration.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-proxyrubika\n\n\nReasons (based on the campaign):\n\n\n - files-exfiltration\n\n\n - target:android","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"onsokets","fixed":[],"affected":"= 0.1.0","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-23T12:42:59+00:00","first_seen_at":"2026-10-26T20:52:03+00:00","triaged_at":"2026-10-26T20:55:45+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':145C '-18219':8A,11A '-2026':7A,10A '/bot':56C '/senddocument':57C '/storage/emulated/0':37C '2026':144C '5263487757':61C '844774819aa502a53d6d364b6636fa62eb412fe8b30973c226aeb9b7b89865f9':124C '86e89':28C 'amazon':26C 'amazon-inspector':25C 'and.txt':44C 'android':33C,156C 'archiv':52C 'author':96C 'author-control':95C 'autom':130C 'bale':63C,75C,98C 'base':148C 'bot':64C,76C 'c263593521f9795193907958f4c642d34253fe9a65526dea1c681808760':29C 'caller':105C 'caller-configur':104C 'campaign':136C,143C,151C 'categori':133C 'chat':59C,99C 'clear':138C 'code':2A,128C 'collect':38C 'configur':89C,106C 'contain':127C 'control':97C 'declar':117C 'default':73C 'destin':101C 'detail':17C 'edit':20C 'end':40C 'exfiltr':84C,132C,154C 'extens':48C 'file':39C,92C,131C,153C 'files-exfiltr':152C 'hardcod':67C 'id':60C 'in.json':41C 'infosteal':142C 'inspector':27C 'instal':79C,86C 'installer-own':85C 'intent':140C 'kam193':123C 'like':141C 'line':23C 'mal':6A,9A 'malici':1A,13B,134C,139C 'meaning':109C 'onsoket':4A 'onsokets':12A 'onsokets/run.py':30C 'own':87C 'packag':14B,83C,121C,126C 'path':36C 'per':15C 'post':50C 'primari':34C 'proxyrubika':146C 'purpos':118C 'py':42C 'pypi':5A 'pyrubi':43C 'reason':147C 'relat':114C 'run':81C 'sens':110C 'sourc':16C,24C,70C,88C,122C 'storag':35C 'tapi.bale.ai':55C 'tapi.bale.ai/bot':54C 'target':155C 'text':91C 'token':65C,77C 'walk':31C 'zip':45C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-23T12:42:59+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-18219","url":"https://osv.dev/vulnerability/MAL-2026-18219","severity":"critical","published_at":"2026-10-23T12:42:59+00:00","modified_at":"2026-10-26T19:00:41+00:00","first_seen_at":"2026-10-26T20:52:03+00:00","fetched_at":"2026-10-26T20:52:03+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"}