CVE-2025-67729LMDeploy是一款用于压缩、部署和服务大型语言模型(LLM)的工具包。在0.11.1之前的版本中存在严重的不安全反序列化漏洞。该漏洞源于在加载模型检查点文件时使用了不安全的torch.load()调用,具体表现为未设置weights_only=True参数。攻击者可以通过构造恶意的.bin或.pt模型文件,当受害者使用LMDeploy加载这些文件时,触发反序列化过程,从而在受害者机器上执行任意代码。此漏洞无需特殊权限即可被利用,但需要用户交互或诱导用户加载恶意模型文件。CVSS评分8.8,属于高危漏洞,对机密性、完整性和可用性均造成严重影响。该漏洞已被官方确认并在新版本0.11.1中修复。
漏洞的核心问题在于Python的torch.load()函数在默认情况下允许反序列化任意Python对象。当weights_only参数未设置为True或未显式传递可信对象时,torch.load()会执行模型文件中嵌入的__reduce__或其他魔术方法,从而触发任意代码执行。攻击者可以精心构造一个包含恶意序列化对象的.pt或.bin文件,该文件在被torch.load()加载时,会自动执行攻击者预设的代码,例如反弹shell、下载后门程序或窃取敏感数据。LMDeploy在加载模型检查点时直接调用torch.load()而未进行安全验证,这使得整个模型加载流程都处于危险之中。攻击者可以通过社交工程手段诱导用户加载恶意模型,或在模型供应链中植入恶意文件。由于LLM模型文件通常体积较大且来源多样,这一漏洞具有较高的隐蔽性和传播潜力。