LMCache曝未修补严重漏洞,联网部署可被远程执行代码
JFrog 披露了与 vLLM 配合使用的 KV 缓存层 LMCache 中一个评分 9.8 的严重漏洞。多进程模式对网络开放时,攻击者无需身份验证即可远程执行代码。目前尚无修复版本,JFrog 建议将端口限制在本机或可信网络内。
JFrog 安全研究团队于 2026 年 10 月 7 日披露了开源项目 LMCache 中的一个严重安全漏洞。该漏洞编号为 CVE-2026-105192,CVSS 评分为 9.8 分(满分 10 分)。据 JFrog 公告介绍,漏洞位于 LMCache 的多进程(分布式)模式中,攻击者无需身份验证即可在可通过网络访问的服务器上远程执行代码。公告发布时尚无修复版本。
LMCache 是为大语言模型推理服务软件设计的 KV 缓存层。语言模型在读取文本时,会为每一段内容生成中间计算结果,KV 缓存就是存放这些结果的地方。LMCache 将这些数据保存在 GPU 显存、系统内存、磁盘和远程存储之间,避免对相同文本重复计算,目的是在长对话和基于文档的检索增强生成(RAG)应用中更快给出首个回复。它通常与 vLLM 等开源模型服务软件一起使用。因此,这一问题与在自有服务器上本地运行语言模型的系统管理员直接相关。
漏洞位于一个无需身份验证的网络通道中
据 JFrog 公告和 CVE 记录,LMCache 的多进程模式会开启一个基于 ZeroMQ 的网络通道,供各工作进程注册并共享缓存块。该通道没有密码或任何其他身份验证。其中一类传入消息会以 Python 的 pickle 格式解码。由于解码 pickle 数据时其中嵌入的命令也可能被执行,任何能够连接到该通道的人只需发送一条精心构造的消息,就能在服务器上运行代码。解码发生在请求被处理之前。代码以 LMCache 进程的权限运行;据公告介绍,官方容器镜像以 root 用户运行该进程。
受影响版本与存在风险的部署方式
据 CVE 记录,存在问题的代码自 0.3.9 版本引入。JFrog 表示,截至 10 月 7 日,这段代码仍存在于 PyPI 上最新的稳定版 0.5.5、0.5.6 的各个候选版本以及开发分支中。
风险大小取决于部署方式。据 JFrog 介绍,该通道默认只接受来自本机(localhost)的连接,因此使用默认设置的单机部署无法从其他机器访问。在多台服务器共享缓存的部署中,管理员会通过 --host 选项指定一个可从网络访问的地址;9.8 分正是针对这种配置计算的。该通道的默认端口为 5555。JFrog 还指出,如果 LMCache 只在 vLLM 进程内部使用,则不会开启该端口。
修复发布前的建议措施
JFrog 建议,在修复版本发布之前,不要将 --host 设置为可从网络访问的地址,并将该端口限制在本机或可信的集群网络内。据公告介绍,防火墙可以降低暴露程度,但任何能够连接到该端口的主机仍然可以执行代码。因此,管理员不妨检查自己是否使用了多进程模式、--host 如何设置,以及哪些机器能够访问 5555 端口。
在长期修复方面,JFrog 建议项目停止用 pickle 解码来自网络的数据,为 ZeroMQ 通道加入身份验证,并在未配置身份验证时拒绝绑定可从网络访问的地址。
该漏洞由 JFrog 发现并评分。截至本文撰写时,LMCache 的 GitHub 页面尚未发布与此相关的安全公告,PyPI 上的最新版本仍为 0.5.5。由于 JFrog 的公告包含漏洞的技术细节,对暴露在网络中的部署,最好尽快采取上述措施,并通过 LMCache 的 GitHub 和 PyPI 页面关注新版本。想从不同角度了解情况,也请关注独立研究人员的评估。
来源:JFrog:LMCache 安全公告(JFSA-2026-001694382)、CVE 记录:CVE-2026-105192、LMCache GitHub 代码库。