Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Unauthenticated network-reachable pickle deserialization on an all-interfaces socket gives low-complexity RCE (PR:N, AC:L) with full C/I/A impact and no scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.org
ktransformers through 0.6.3, fixed in commit def0f93, contains an unauthenticated pickle deserialization vulnerability that allows remote attackers to execute arbitrary commands by sending crafted pickle payloads to the SchedulerServer ZMQ ROUTER socket bound to all interfaces. Attackers can exploit malicious __reduce__ methods embedded in crafted pickle payloads to execute arbitrary shell commands as the server process.
AnalysisAI
Remote code execution in ktransformers (kvcache-ai) through version 0.6.3 allows unauthenticated attackers to run arbitrary shell commands by sending crafted pickle payloads to the SchedulerServer's ZMQ ROUTER socket, which is bound to all network interfaces (0.0.0.0). The flaw stems from unsafe pickle deserialization of RPC messages, letting an attacker weaponize a malicious __reduce__ method to execute code as the server process. Publicly available exploit code exists and VulnCheck published an advisory; there is no public exploit identified in CISA KEV, so this is not yet confirmed as actively exploited.
Technical ContextAI
ktransformers is an open-source LLM inference/serving framework (kvcache-ai) that uses a balance-serve scheduler component. The SchedulerServer exposes an RPC interface over ZeroMQ (ZMQ) using a ROUTER socket, and the underlying RPC transport serializes messages with Python's pickle module. CWE-502 (Deserialization of Untrusted Data) is the root cause class: pickle is not a safe serialization format because unpickling can invoke arbitrary constructors and callables via the object's __reduce__ hook. Source evidence in sched_rpc.py shows the frontend socket was bound with tcp://*:{sched_port}, i.e. listening on every interface, so any host that can reach the scheduler port can submit crafted pickle data that is deserialized without authentication. The affected package is identified by CPE cpe:2.3:a:kvcache-ai:ktransformers.
RemediationAI
Upgrade to a build that includes the vendor fix in commit def0f9313d6e063b5c5ccdfa1f6707f7a40dfdca (PR #2091), which changes the scheduler bind from tcp://*:{sched_port} (all interfaces) to tcp://127.0.0.1:{sched_port} (loopback only); a released patched version was not independently confirmed, so track the vendor's next tagged release or pin to the fixed commit. As compensating controls where immediate upgrade is not possible: restrict network exposure of the scheduler ZMQ port by binding the service to localhost or a trusted management interface, and block the sched_port at the host/network firewall so only the local inference stack can reach it - trade-off is that legitimate remote/multi-host scheduler deployments will break and must be re-architected onto a trusted private network or authenticated tunnel (e.g. SSH/VPN or mTLS proxy). Do not expose ktransformers serving components directly to untrusted networks. Advisory URLs for tracking: https://github.com/kvcache-ai/ktransformers/pull/2091 and https://www.vulncheck.com/advisories/ktransformers-unauthenticated-pickle-deserialization-rce-via-zmq.
More in Ktransformers
View allSame weakness CWE-502 – Deserialization of Untrusted Data
View allSame technique Deserialization
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-46075
GHSA-6vqg-j4cx-cqv4