HackerNews

HackerNews
未修补的 LMCache 严重漏洞可让未认证攻击者远程执行代码

未修补的 LMCache 严重漏洞可让未认证攻击者远程执行代码

给文章评分:

LMCache 是一款为 vLLM 等大型语言模型(LLM)服务器加速的开源软件,其中的一个严重漏洞可让攻击者在无需登录的情况下在缓存服务器上运行代码,且目前没有可用的修复版本。

该漏洞存在于 LMCache 的多进程模式中,在该模式下,缓存作为一个独立服务器运行,LLM 工作进程通过 ZeroMQ 消息库与其通信。向该服务器发送一条网络消息,即可使用 LMCache 进程所属用户的身份运行命令。

只有当操作者将服务器设置为监听可路由地址(而非其默认使用的 localhost)时,该服务器才能从另一台机器访问。

JFrog 于 10 月 7 日披露了该漏洞,并为其评定了 10 分制中的 9.8 分,属于严重级别——这是它给绑定到可路由地址的服务器所评定的等级。

该漏洞编号为 CVE-2026-105192,影响从 2025 年 10 月发布的 0.3.9 版本到最新稳定版 0.5.5 的 LMCache,同时也存在于 0.5.6 候选版本和开发分支中。目前没有修复版本。

服务器是否暴露取决于一项设置。默认情况下,多进程服务器只监听本机,因此其他主机无法访问它。当操作者以可路由地址启动它时,它就变得可访问,这很像多节点部署在多台机器间共享缓存的方式。

LMCache 自带的 Kubernetes 部署示例就是这样启动服务器的,监听所有网络接口。而在单个 vLLM 进程内运行的 LMCache 副本则根本不会打开该端口。

多进程服务器为工作进程注册和共享缓存数据而打开的 ZeroMQ socket 没有身份验证。其中一种消息使用 pickle 进行反序列化,pickle 是一种 Python 格式,可携带代码并在数据被解码时运行它。服务器在仍在读取该消息参数时、在对消息类型进行任何检查之前就对其进行反序列化,因此一条精心构造的消息可以运行发送者的代码。

该代码以 LMCache 进程的权限运行。据 JFrog 称,在该项目的官方容器镜像中,该进程以 root 身份运行。该漏洞由 JFrog 安全研究团队的 Yuval Moravchick 发现。

目前没有已修补的版本。在修复版本发布之前,JFrog 建议操作者不要为多进程服务器分配可路由地址,并将其端口保留在本机或可信集群网络上。限制谁能访问该端口的防火墙可以降低风险,但无法消除风险,因为任何仍能建立连接的主机都可以运行代码。

LMCache 尚未针对该漏洞发布安全公告。JFrog 的公告没有为操作者提供判断服务器是否已被攻击的方法。

其他报告及一项相关的 vLLM 修复

另外,一名 GitHub 用户在 10 月 6 日——即 CVE-2026-105192 公开的前一天——提交了六份额外的 LMCache 安全报告。这些报告声称存在对属于不同租户的缓存数据的未认证访问,以及对若干无需登录即可执行命令的网络服务的未认证访问。

这些报告来自同一个账户,基于概念验证主张,没有 CVE 编号、没有维护者的确认,也没有修复方案。其中一份指向一个此后已发生变化的 LMCache 默认设置:一个在 0.5.5 中监听所有网络接口的管理 HTTP 服务器,在 0.5.6 候选版本中只监听本地主机。

vLLM 中一个相关的漏洞已被修复。在 9 月 22 日发布的 0.30.0 版本之前,在使用 LMCache 多进程连接器的部署中,一个携带畸形 cache_salt 值的请求即可使引擎崩溃,这是一个编号为 CVE-2026-105756 的拒绝服务漏洞。其评级为 6.5,不允许代码执行。

核心错误——将来自未认证网络 socket 的数据交给 pickle 处理——与研究人员在 2025 年 11 月在其他 AI 推理框架中发现的一组漏洞(他们称之为 ShadowMQ)中的错误相同。LMCache 的代码是否与那些项目共享同一来源,目前尚未确定。


消息来源:thehackernews.com;
本文由 HackerNews.cc 翻译整理,封面来源于网络;
转载请注明“转自 HackerNews.cc”并附上原文
分享到:
hackernews

hackernews

该作者暂无简介