Security

关于 CVE-2026-105192 的最新进展

2026-10-16

LLMCache Team

设备 IPC 反序列化漏洞修复已合并至 dev 分支

2026 年 10 月 7 日,JFrog Security Research 公开披露了 LMCache 多进程(MP)模式中的一个反序列化远程代码执行(RCE)漏洞(CVE-2026-105192,CVSS 3.1 评分 9.8)。我们于 10 月 7 日收到报告,并于当天开始着手修复。修复补丁(PR #5644)已于 10 月 12 日合并至 dev 分支,并将随 0.5.6 版本发布,预计本周推出。

本文将介绍该漏洞及其修复方案、如何保护和排查您的部署,以及后续仍需完成的工作。

1.1. 漏洞说明

该问题存在于多进程(分布式)模式所使用的 ZeroMQ 传输层中。传输端口(默认 5555)未启用身份认证,且在消息解码过程中使用 pickle.loads 对设备 IPC 描述符进行反序列化。攻击者只需发送一条精心构造的消息,即可以 LMCache 进程的权限执行任意代码。

受影响版本: 0.3.9 至 0.5.5、0.5.6 的各候选发布版本(RC),以及修复之前的开发分支。

暴露范围: 默认情况下,传输层仅绑定到 localhost,且单进程/进程内(IP)模式不会开放该端口。当传输层绑定到可路由地址时(多节点部署通常如此),部署即处于暴露状态。

  • 有一点会增加许多用户的风险:我们提供的 Kubernetes 部署示例绑定了所有网络接口。如果您的部署基于此,请假定您的部署已暴露。我们已将该示例更新为默认绑定 localhost。

2. 修复方案

本次修复以带版本号、类型化的 MessagePack 描述符取代了 pickle。描述符会先经过校验,随后从本地固定的白名单(allowlist)中选取对应的设备封装类型。类名绝不从网络输入中获取,也不存在回退到 pickle 的路径。ZeroMQ 和 gRPC 两条传输路径均已覆盖,格式错误的描述符将被拒绝。

我们针对多种不同的攻击消息测试了该修复,包括原始 CVE 报告中的那条消息,以及一个试图在主机上执行自定义脚本的极端测试场景。修复前能够成功执行的恶意代码,在修复后均被拦截。正常请求均可正常处理,116 项回归测试全部通过。

请同时升级 worker 和服务端。 由于传输格式(wire format)已发生变化,新旧版本混用将不受支持。

3. 当前应采取的措施

如果您正在使用多进程模式,在 0.5.6 发布之前请采取以下措施:

  1. 不要将传输层绑定到可路由地址。 请将其限定在 localhost,或仅在受信任的集群网络中使用。
  2. 限制对传输端口的访问。 通过网络策略或主机防火墙规则,限制对传输端口(默认 5555,或您配置的其他端口)的访问。
  3. 以非 root 用户身份运行。 官方非 root Docker 镜像将随 0.5.6 一同发布。如需在 0.5.6 发布前使用 Docker 镜像,请使用我们提供的 Dockerfile 自行构建定制镜像。
  4. 请检查基于我们 Kubernetes 示例的部署。该示例此前绑定了所有网络接口。

4. 入侵排查

如果您的传输端口曾在任何时间点可被不受信任的网络访问,请将该主机视为可能已被入侵。漏洞利用发生在消息处理之前,因此即使日志中显示请求被拒绝或格式错误,也不代表攻击未能得逞。

我们建议:

  • 检查来自异常来源的传输端口连接记录。
  • 排查 LMCache 进程是否产生了异常的子进程、shell 或出站连接。
  • 轮换受影响容器可访问的凭据和密钥,并使用干净的镜像重新部署。

5. 后续工作

本次修复针对的是设备 IPC 描述符的反序列化路径。另有两项相关工作有待完成:

  • RPC 传输层身份认证。 目前,LMCache 服务端与 MP 协调器(coordinator)或前端之间的 RPC 通信不要求身份认证。我们计划在 0.5.7 中加入 RPC 身份认证支持。
  • 引擎驱动路径中的 pickle 使用。 我们还发现引擎驱动路径(CPU 数据/检索响应处理)中存在 pickle 的使用。该路径默认处于禁用状态,且无法从网络访问。我们计划在 0.5.8 之前移除该处的 pickle 使用。

6. 致谢

感谢 JFrog Security Research 的 Yuval Moravchick 报告此问题并提供详尽的分析。我们欢迎社区通过 GitHub Security Advisories 提交安全报告。

参考链接

目录

分享方式:

发表回复

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

博客更多内容

了解 LMCache Blog 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读