---
id: "MAL-2026-18751"
page: "https://infrastack.ai/live/MAL-2026-18751"
kind: "package"
aliases: ["MAL-2026-18751"]
title: "Malicious code in qzc690385 (PyPI)"
severity: "critical"
cvss: null
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "qzc690385", "fixed": [], "affected": "= 1.0.0; = 1.0.1", "ecosystem": "pypi"}]
ecosystems: ["pypi"]
tags: ["malicious", "package"]
not_affected_if: []
published_at: "2026-11-07T10:21:05+00:00"
first_seen_at: "2026-11-07T11:17:32+00:00"
updated_at: "2026-11-07T11:27:57+00:00"
sources: [{"source": "osv-malicious", "url": "https://osv.dev/vulnerability/MAL-2026-18751", "first_seen_at": "2026-11-07T11:17:32+00:00"}]
exploit_sources: []
---

# Malicious code in qzc690385 (PyPI)

Link for people: https://infrastack.ai/live/MAL-2026-18751 (this .md is for agents)

## Affected

- pypi:qzc690385 affected = 1.0.0; = 1.0.1 fixed no fixed version listed

## Timeline

- 2026-11-07T11:17:32+00:00 osv-malicious https://osv.dev/vulnerability/MAL-2026-18751

## From the sources

---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (84cc8690335a9ed7454c095286b0a9fd18141513f6d619e62a28d1b5f4751beb)
On sdist install, setup.py writes a Python HTTP server to /tmp/.zqx and launches it detached via `nohup... &` with `start_new_session=True`. The server binds 0.0.0.0 on ports 9998, 9999, 8089, 8099, and 8777 and executes arbitrary shell commands received via HTTP GET query parameters, gated only by the hardcoded token `kq7731`. In parallel, setup.py POSTs crafted model-registration payloads to a local Xinference API at http://127.0.0.1:9997/v1/model_registrations/flexible, referencing `xinference.model.flexible.launchers.transformers_launcher.launcher` — a known Xinference abuse path for code execution via model registration. The same POST stream smuggles base64-url-encoded host reconnaissance (python path, listening ports in the backdoor's port range, and process count for `/tmp/.zqx`) in chunks via the `model_name` field (`zqxp%02d<b64>`), using the Xinference registry as both the RCE primitive and a data-return channel. The package provides no legitimate functionality consistent with these behaviors.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
