{"id":"MAL-2026-15930","kind":"package","aliases":["MAL-2026-15930"],"related":[],"title":"Malicious code in tpu-raiden-jax (PyPI)","description":"---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (f37dbb20f91d6812bd5bcfa84a040595ea1f9358e56f946da4efa599f7751bed)\nOn first import, tpu-raiden-jax's top-level __init__.py invokes a _canary() routine that serializes the entire os.environ dictionary along with socket.gethostname() and POSTs the resulting JSON payload to the hardcoded URL https://vuorblucjega.dssldrf.net/python-install-log/tpu-raiden-jax via urllib.request. Errors are silently swallowed. The destination host is unrelated to any legitimate publisher domain, and the package version (99.99.0) plus the bulk-environment shape are consistent with a dependency-confusion canary/steal against internal package names. Any secrets present in the environment of a REPL, CI job, or build that imports this package (AWS_*, GH_TOKEN, npm/PyPI tokens, database credentials, and any other exported variable) are transmitted to the external host.\n\n## Source: kam193 (f5e62e8c3e35de0ec83c0081e3eb91530e77815509c010b28c47de375068cd92)\nDuring import, the package exfiltrates environment variables.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-09-amirgo4496\n\n\nReasons (based on the campaign):\n\n\n - exfiltration-env-variables\n\n\n - dependency-confusion\n\n\n - The package contains code to exfiltrate basic data from the system, like IP or username. It has a limited risk.","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"tpu-raiden-jax","fixed":[],"affected":"= 99.99.0","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-09-04T15:00:35+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":"'-09':170C '-15930':11A,14A '-2026':10A,13A '/python-install-log/tpu-raiden-jax':73C '2026':169C '99.99.0':94C 'along':58C 'amazon':32C 'amazon-inspector':31C 'amirgo4496':171C 'aw':130C 'base':173C 'basic':190C 'build':125C 'bulk':98C 'bulk-environ':97C 'campaign':161C,168C,176C 'canari':50C 'canary/steal':108C 'categori':158C 'ci':122C 'clear':163C 'code':2A,187C 'confus':107C,183C 'consist':102C 'contain':186C 'credenti':136C 'data':191C 'databas':135C 'depend':106C,182C 'dependency-confus':105C,181C 'destin':81C 'detail':23C 'dictionari':57C 'domain':89C 'edit':26C 'entir':55C 'env':179C 'environ':99C,118C,156C 'error':76C 'exfiltr':155C,178C,189C 'exfiltration-env-vari':177C 'export':140C 'extern':146C 'f37dbb20f91d6812bd5bcfa84a040595ea1f9358e56f946da4efa599f7751bed':34C 'f5e62e8c3e35de0ec83c0081e3eb91530e77815509c010b28c47de375068cd92':150C 'first':36C 'gh':131C 'hardcod':69C 'host':82C,147C 'import':37C,127C,152C 'infosteal':167C 'init':46C 'inspector':33C 'intent':165C 'intern':110C 'invok':48C 'ip':196C 'jax':7A,18A,41C 'job':123C 'json':65C 'kam193':149C 'legitim':87C 'level':45C 'like':166C,195C 'limit':202C 'line':29C 'mal':9A,12A 'malici':1A,19B,159C,164C 'name':112C 'npm/pypi':133C 'os.environ':56C 'packag':20B,92C,111C,129C,154C,185C 'payload':66C 'per':21C 'plus':95C 'post':62C 'present':115C 'publish':88C 'py':47C 'pypi':8A 'raiden':6A,17A,40C 'reason':172C 'repl':121C 'result':64C 'risk':203C 'routin':51C 'secret':114C 'serial':53C 'shape':100C 'silent':78C 'socket.gethostname':60C 'sourc':22C,30C,148C 'swallow':79C 'system':194C 'token':132C,134C 'top':44C 'top-level':43C 'tpu':5A,16A,39C 'tpu-raiden-jax':4A,15A,38C 'transmit':143C 'unrel':84C 'url':70C 'urllib.request':75C 'usernam':198C 'variabl':141C,157C,180C 'version':93C 'via':74C 'vuorblucjega.dssldrf.net':72C 'vuorblucjega.dssldrf.net/python-install-log/tpu-raiden-jax':71C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-09-04T15:00:35+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-15930","url":"https://osv.dev/vulnerability/MAL-2026-15930","severity":"critical","published_at":"2026-09-04T15:00:35+00:00","modified_at":"2026-09-04T21:30:08+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"}