{"id":"MAL-2026-15936","kind":"package","aliases":["MAL-2026-15936"],"related":[],"title":"Malicious code in trongridew (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (598687794d8452d6845a3529e26bf63838cedee736dc0b8545ad33abe2e827f3)\nThe package exposes a single public function `perm(private_key)` in `main.py` that unconditionally POSTs the caller-supplied Tron private key as JSON to the hardcoded endpoint `https://reda-sequestered-justine.ngrok-free.dev/tron`. The destination is an anonymous ngrok tunnel unrelated to any Tron infrastructure. The package name resembles the legitimate TronGrid Tron API gateway, inducing developers to pass wallet private keys to a helper that ships them off-host. Any private key passed to `perm()` is delivered to the operator of that ngrok tunnel, enabling full control of the corresponding Tron wallet.\n\n## Source: kam193 (b39b568eb2c95508c9c14eacd7c907017273e80aad0298b23a11cd0139513ec7)\nPackage appears to be designed for private key exfiltration, but no known usage. The name appears to be related to the cryptocurrency TRX (Tron / Tronix). Some packages additionally clone the readme of other, legit libraries. The similar packages are repeating uploaded to PyPI\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2025-04-tronix\n\n\nReasons (based on the campaign):\n\n\n - exfiltration-generic\n\n\n - crypto-related","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"trongridew","fixed":[],"affected":"= 0.0.1","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-09-05T20:26:18+00:00","first_seen_at":"2026-10-26T20:51:56+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":"'-04':179C '-15936':8A,11A '-2026':7A,10A '/tron':59C '2025':178C '598687794d8452d6845a3529e26bf63838cedee736dc0b8545ad33abe2e827f3':28C 'addit':151C 'amazon':26C 'amazon-inspector':25C 'anonym':64C 'api':80C 'appear':125C,139C 'b39b568eb2c95508c9c14eacd7c907017273e80aad0298b23a11cd0139513ec7':123C 'base':182C 'caller':46C 'caller-suppli':45C 'campaign':170C,177C,185C 'categori':167C 'clear':172C 'clone':152C 'code':2A 'control':115C 'correspond':118C 'crypto':190C 'crypto-rel':189C 'cryptocurr':145C 'deliv':105C 'design':128C 'destin':61C 'detail':17C 'develop':83C 'edit':20C 'enabl':113C 'endpoint':56C 'exfiltr':132C,187C 'exfiltration-gener':186C 'expos':31C 'full':114C 'function':35C 'gateway':81C 'generic':188C 'hardcod':55C 'helper':91C 'host':97C 'induc':82C 'infosteal':176C 'infrastructur':71C 'inspector':27C 'intent':174C 'json':52C 'kam193':122C 'key':38C,50C,88C,100C,131C 'known':135C 'legit':157C 'legitim':77C 'librari':158C 'like':175C 'line':23C 'main.py':40C 'mal':6A,9A 'malici':1A,13B,168C,173C 'name':74C,138C 'ngrok':65C,111C 'off-host':95C 'oper':108C 'packag':14B,30C,73C,124C,150C,161C 'pass':85C,101C 'per':15C 'perm':36C,103C 'post':43C 'privat':37C,49C,87C,99C,130C 'public':34C 'pypi':5A,166C 'readm':154C 'reason':181C 'reda-sequestered-justine.ngrok-free.dev':58C 'reda-sequestered-justine.ngrok-free.dev/tron':57C 'relat':142C,191C 'repeat':163C 'resembl':75C 'ship':93C 'similar':160C 'singl':33C 'sourc':16C,24C,121C 'suppli':47C 'tron':48C,70C,79C,119C,147C 'trongrid':78C 'trongridew':4A,12A 'tronix':148C,180C 'trx':146C 'tunnel':66C,112C 'uncondit':42C 'unrel':67C 'upload':164C 'usag':136C 'wallet':86C,120C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-09-05T20:26:18+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-15936","url":"https://osv.dev/vulnerability/MAL-2026-15936","severity":"critical","published_at":"2026-09-05T20:26:18+00:00","modified_at":"2026-09-06T14:45:03+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"}