flawopen.com/AI Security/lmcache-multiprocess-pickle-deserialization-cve-2026-105192
CVE-2026-105192:LMCache 多进程模式中的未认证 pickle 反序列化
CVE-2026-105192 会让能够访问 LMCache 多进程传输端点的未认证对端触发不安全的 pickle 反序列化。请检查 ZMQ 端点是否可路由、限制访问,并关注厂商修复。[1], [2]
💡 通俗易懂的原理解析 (ELI5)
LMCache 收到网络对端寄来的密封包裹,却用一种可能执行其中隐藏指令的方式打开它。服务器还没检查包裹声称的消息类型,问题就已发生。 这就像快递员没有核对收件人,就让包裹里的自动装置启动。[1], [2]
核心概念与专有名词
CWE-306:关键功能缺少身份验证- CVE 记录还列出了
CWE-306,因为 ZeroMQ ROUTER 不验证对端身份。这是传输边界上的独立弱点,与不安全的 pickle 对象重建(CWE-502)不同。风险仍以端点可达为前提;默认绑定到 localhost 本身不会让远程主机访问该端点。[2]
框架映射
攻击执行流程分解
步骤 3
部署条件与响应
| 条件 | 评估 |
|---|---|
| 未启用多进程模式 | 此 CVE 路径未启用。 |
| 多进程模式仅绑定 loopback | 远程网络对端通常无法访问端点;仍需检查主机网络与本地信任边界。 |
| 绑定到可路由地址或集群端口暴露 | 按可能可达处理,立即限制访问并检查进程权限。 |
| 受影响版本 | 披露信息称,截至 2026-10-07,受影响版本为 0.3.9 至 0.5.5,也包括 0.5.6 候选版和开发分支。 |
源代码对比:漏洞与安全实现
CVE Program 记录将 CVE-2026-105192 归于 JFrog,并记载 MessagePack 扩展 → DeviceIPCWrapper.Deserialize → pickle.loads 的调用路径、默认 localhost 绑定、可路由的 --host 选项及 CVSS 9.8。上游代码确认了反序列化调用。本文不提供可武器化的 pickle,也不声称厂商已发布补丁。必须能够访问该端点才有此风险;默认本地绑定本身不会让服务可从远程网络访问。临时代码示例会关闭该解码路径,并非可直接套用的 LMCache 补丁;请评估服务影响,并在等待受支持修复期间隔离网络。[2], [1], [3], [4], [5]
存在漏洞的实现
@staticmethod
def Deserialize(data: bytes) -> DeviceIPCWrapper:
return pickle.loads(data)
加固后的安全修复
@staticmethod
def Deserialize(data: bytes) -> DeviceIPCWrapper:
# 临时的故障关闭式遏制措施,并非上游补丁。
raise PermissionError("LMCache peer deserialization disabled pending vendor fix")
工程与系统安全加固清单
- ✓盘点 LMCache 部署,找出使用多进程或分布式模式的实例,并记录软件包和容器版本。[1], [2]
- ✓检查实际 ZMQ 绑定地址与网络路由。如果不可信工作负载或租户可以访问端点,私有网络本身并不足够。[2], [5]
- ✓厂商修复发布前,尽可能停用多进程传输;单机运行足够时可限制到 loopback。必须多节点运行时,将端口限制为明确可信的对端;这只能减少可达性,不能让 pickle 变安全。 对于未来任何可路由部署,都应要求 ZMQ 对端通过身份验证(例如 CURVE 或逐消息 HMAC),并用经过校验的纯数据格式替换 pickle;防火墙允许列表不等于身份验证。
- ✓使用专用非特权账户运行服务,并移除不必要的容器能力;CVE 记录称官方容器以 root 运行。[2]
- ✓关注 LMCache 安全公告与版本。仅升级到明确修复
CVE-2026-105192的版本;本次审阅的披露材料没有指出已修复版本。[1], [2] - ✓检查多进程传输端口(CVE 记录称默认 5555)的异常连接;先调查暴露情况,再判断是否发生入侵。[2], [5]
参考来源
- JFrog Security Research: CVE-2026-105192 mechanics and mitigations
- CVE Program record CVE-2026-105192 (JFrog CNA record)
- LMCache upstream: DeviceIPCWrapper deserialization source
- LMCache upstream: MessagePack extension decoding
- LMCache upstream: multiprocess ZeroMQ transport
- The Hacker News: critical LMCache pickle deserialization disclosure