Case · DiggingBeagle record

LMCache distributed ZeroMQ transport deserializes unauthenticated pickle payloads

JFrog describes CVE-2026-105192 in LMCache distributed mode: unauthenticated ZeroMQ messages reach pickle.loads during MessagePack extension decoding; remote reachability depends on an exposed transport binding.

Scope

Reported finding as of 2026-10-13; publication and observation dates are distinguished in the linked source. No production exploitation is inferred without explicit evidence.

Assessment profile

Assessment method
Setting
research demonstration
Exploitation
demonstrated
Evidence
Grade B
Remediation
none known
AI role
AGAINST AI
Basis and provenance

Evidence desk assessment of the pinned Claims and source provenance, checked against the public primary report or advisory. JFrog provides an inspectable reproduction of an unauthenticated deserialization path in routably bound LMCache multiprocess mode. At disclosure no fixed release was identified; this does not prove exploitation in any real customer installation. Impact remains unbanded because verified real-world affected scope and realized harm are not established. Findings are not independent reproduction by DiggingBeagle.

Assessed Oct 14, 2026 using diggingbeagle.assessment/1.

At a glance

Claims & evidence

CLM-CP5-LMCACHE-ZMQ-1LMCache multiprocess mode opens an unauthenticated ZeroMQ ROUTER socket; the default localhost binding is not remotely reachable unless an operator makes it routable.supported

Basis: reported finding

Link to claim
CLM-CP5-LMCACHE-ZMQ-2MessagePack extension type 1 is dispatched through DeviceIPCWrapper.Deserialize and pickle.loads before REGISTER_KV_CACHE message handling or any handler-level validation.supported

Basis: reported finding

Link to claim
CLM-CP5-LMCACHE-ZMQ-3JFrog lists affected versions at 0.3.9 and later; the disclosed CVSS 9.8 scenario concerns routable distributed-mode deployments, not every single-host vLLM configuration.supported

Basis: reported finding

Link to claim

Implications

The dangerous boundary is before the application handles the purported cache registration: MessagePack extension decoding already enters Python pickle deserialization. Listener reachability is a decisive precondition. A default loopback bind is not remotely reachable, while a multi-node ROUTER address may be; treating those setups as equally exposed would distort the severity assessment.

Controls and mitigations

  • Do not expose the unauthenticated multiprocess ROUTER port to untrusted networks. Keep it on loopback when multi-node access is unnecessary and restrict peer connectivity when distributed operation is required.
  • Avoid unsafe pickle deserialization in pre-authentication parsing; isolate service process privileges so a parser compromise cannot automatically inherit sensitive host or container authority.

Unknowns and contradictions

  • Current fixed release and backport status require a confirmed maintainer changelog.
  • No exploitation campaign or exposed deployment inventory was independently established.

Sources and citation

Material revision history

  1. Oct 13, 2026 · Published version · first publication · revision 144