/

CVE-2026-105192

Severity:

CRITICAL RISK

(9.8)

Unsafe Deserialization (CWE-502) in LMCache Transport

CVE-2026-105192

Deferred

Vulnerability type

Category:

Unsafe Deserialization

CWE:

CWE-306, CWE-502

Impact:

Unauthenticated Remote Code Execution

Severity:

CRITICAL RISK

(9.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

LMCache multiprocess mode exposes an unauthenticated ZeroMQ transport that can process attacker-controlled messages using unsafe Python deserialization. If the transport is reachable, a single crafted request may execute arbitrary code with the privileges of the LMCache process, potentially including root in official container deployments.

LMCache multiprocess mode exposes an unauthenticated ZeroMQ transport that can process attacker-controlled messages using unsafe Python deserialization. If the transport is reachable, a single crafted request may execute arbitrary code with the privileges of the LMCache process, potentially including root in official container deployments.

Affected context

The vulnerability occurs in LMCache multiprocess or distributed mode when its ZeroMQ ROUTER transport is reachable by an attacker. The service listens on port 5555 by default and typically binds to localhost, but deployments that configure a routable host for multi-node operation may expose the transport beyond the local machine. Messages using the affected extension path are deserialized before normal request handling and authentication controls, if any, can apply.

The vulnerability occurs in LMCache multiprocess or distributed mode when its ZeroMQ ROUTER transport is reachable by an attacker. The service listens on port 5555 by default and typically binds to localhost, but deployments that configure a routable host for multi-node operation may expose the transport beyond the local machine. Messages using the affected extension path are deserialized before normal request handling and authentication controls, if any, can apply.

Exploit preconditions

  • Attack surface: LMCache's ZeroMQ transport port, commonly 5555
  • Required access: Network connectivity to the transport; no application authentication is required
  • Trigger point: Processing an extension message during request decoding
  • Why exploitation is possible: Attacker-controlled serialized data reaches pickle.loads before the request handler runs
  • Privilege context: Code executes with the permissions of the LMCache process, which may be root in official container images
  • Attack surface: LMCache's ZeroMQ transport port, commonly 5555
  • Required access: Network connectivity to the transport; no application authentication is required
  • Trigger point: Processing an extension message during request decoding
  • Why exploitation is possible: Attacker-controlled serialized data reaches pickle.loads before the request handler runs
  • Privilege context: Code executes with the permissions of the LMCache process, which may be root in official container images

Why this happens

The underlying issue combines an unauthenticated network service with unsafe deserialization. Data received through the ZeroMQ transport is decoded as msgpack, and a specific extension path passes serialized content to pickle.loads, which can reconstruct arbitrary Python objects and invoke attacker-controlled behavior. This maps primarily to CWE-502: Deserialization of Untrusted Data; the absence of authentication or authorization on the transport also relates to CWE-306: Missing Authentication for Critical Function.

The underlying issue combines an unauthenticated network service with unsafe deserialization. Data received through the ZeroMQ transport is decoded as msgpack, and a specific extension path passes serialized content to pickle.loads, which can reconstruct arbitrary Python objects and invoke attacker-controlled behavior. This maps primarily to CWE-502: Deserialization of Untrusted Data; the absence of authentication or authorization on the transport also relates to CWE-306: Missing Authentication for Critical Function.

Potential impact

  • An attacker may execute arbitrary code in the LMCache process
  • The attacker could access, alter, or delete cached data and application resources
  • Compromise may extend to credentials, mounted files, or connected services
  • A root-running container could allow more extensive container compromise
  • Inadequate network isolation could enable lateral movement within the deployment
  • An attacker may execute arbitrary code in the LMCache process
  • The attacker could access, alter, or delete cached data and application resources
  • Compromise may extend to credentials, mounted files, or connected services
  • A root-running container could allow more extensive container compromise
  • Inadequate network isolation could enable lateral movement within the deployment

General mitigation guidance

Mitigation generally focuses on removing unsafe deserialization and reducing exposure of the transport interface.

Common defensive patterns include:

  • Replacing object-capable deserialization with safe, schema-constrained data formats
  • Rejecting unsupported message types before processing serialized content
  • Requiring mutual authentication and authorization for inter-process or inter-node transport
  • Binding services to private interfaces and restricting access with network policy or firewall controls
  • Running LMCache as a dedicated non-root user with minimal filesystem and network privileges
  • Avoiding broad host exposure when local or private service discovery is sufficient
  • Treating cache transport messages as untrusted even within an internal network

Mitigation generally focuses on removing unsafe deserialization and reducing exposure of the transport interface.

Common defensive patterns include:

  • Replacing object-capable deserialization with safe, schema-constrained data formats
  • Rejecting unsupported message types before processing serialized content
  • Requiring mutual authentication and authorization for inter-process or inter-node transport
  • Binding services to private interfaces and restricting access with network policy or firewall controls
  • Running LMCache as a dedicated non-root user with minimal filesystem and network privileges
  • Avoiding broad host exposure when local or private service discovery is sufficient
  • Treating cache transport messages as untrusted even within an internal network

How teams detect issues like this

Organizations can look for this class of issue through:

  • Static analysis rules identifying pickle.loads or equivalent object deserialization on network-derived data
  • Code review checks for unauthenticated ZeroMQ ROUTER or DEALER endpoints
  • Dependency and configuration reviews that identify routable transport bindings
  • Runtime monitoring for unexpected connections to the LMCache transport port
  • Network policy audits confirming that only authorized worker peers can reach the endpoint
  • Container posture checks for root execution and excessive mounted credentials

Automated security review tools may help flag unsafe deserialization APIs and missing access-control checks during development.

Organizations can look for this class of issue through:

  • Static analysis rules identifying pickle.loads or equivalent object deserialization on network-derived data
  • Code review checks for unauthenticated ZeroMQ ROUTER or DEALER endpoints
  • Dependency and configuration reviews that identify routable transport bindings
  • Runtime monitoring for unexpected connections to the LMCache transport port
  • Network policy audits confirming that only authorized worker peers can reach the endpoint
  • Container posture checks for root execution and excessive mounted credentials

Automated security review tools may help flag unsafe deserialization APIs and missing access-control checks during development.

Sources

SourceLink
blog.lmcache.aiblog.lmcache.ai/en/2026/10/13/an-update-on-cve-2026-105192/
github.comgithub.com/LMCache/LMCache
github.comgithub.com/LMCache/LMCache/blob/v0.3.9/lmcache/v1/multiprocess/custom_types.py
github.comgithub.com/LMCache/LMCache/blob/v0.5.5/lmcache/v1/platform/base/ipc_wrapper.py
github.comgithub.com/LMCache/LMCache/pull/5644
github.comgithub.com/LMCache/LMCache/pull/5684
github.comgithub.com/LMCache/LMCache/pull/5685
github.comgithub.com/LMCache/LMCache/releases/tag/v0.5.6
github.comgithub.com/LMCache/LMCache/security/advisories/GHSA-w5f2-9q9c-ff4h
pypi.orgpypi.org/project/lmcache/
research.jfrog.comresearch.jfrog.com/vulnerabilities/lmcache-is-vulnerable-to-unauthenticated-remote-code-execution-via-pickle-deserialization-on-the-multiprocess-zmq-transport-cve-2026-105192-jfsa-2026-001694382/

Frequently asked

questions

Yes, when the ZeroMQ transport is reachable over the network. A deployment bound only to localhost substantially limits network exposure, while routable multi-node configurations require stronger access controls.

No application authentication is required by the affected transport. Network reachability to the exposed endpoint is the primary access prerequisite.

Eliminate unsafe object deserialization, use a strictly validated data format, and protect the transport with authentication, authorization, and network isolation.

Treat all IPC and distributed-service messages as untrusted, prohibit unsafe deserialization APIs in code policy, run services with least privilege, and continuously review transport exposure.

Yes, when the ZeroMQ transport is reachable over the network. A deployment bound only to localhost substantially limits network exposure, while routable multi-node configurations require stronger access controls.

No application authentication is required by the affected transport. Network reachability to the exposed endpoint is the primary access prerequisite.

Eliminate unsafe object deserialization, use a strictly validated data format, and protect the transport with authentication, authorization, and network isolation.

Treat all IPC and distributed-service messages as untrusted, prohibit unsafe deserialization APIs in code policy, run services with least privilege, and continuously review transport exposure.

Find out what's already
exploitable in your codebase.