PyTorch 是一个基于 Torch 库的机器学习库,广泛应用于计算机视觉和自然语言处理等领域。它是最受欢迎的深度学习框架之一。
然而,尽管 PyTorch 拥有强大的功能,但其背后潜藏着潜在的安全风险。最初,PyTorch 使用 pickle 保存模型,但由于 pickle 反序列化的不安全性,加载模型时存在远程代码执行(RCE)的风险。随后,PyTorch 引入了 weights_only
参数来增强安全性。官方文档指出,weights_only=True
被认为是安全的,并建议使用它,而不是 weights_only=False
。
多年来,weights_only=True
的安全性一直没有受到挑战。然而,我们的研究揭示了一些令人不安的事实。我们发现,使用 weights_only=True
的 torch.load
支持 TorchScript,这促使我们深入研究 TorchScript 的内部工作机制。在一段时间的研究后,我们发现了几个漏洞,并最终实现了远程代码执行(RCE)。我们迅速将这一发现报告给了 PyTorch,PyTorch 确认了该漏洞并为我们分配了 CVE-2025-32434。这个发现颠覆了已有的认知,并对许多 AI 应用产生了深远的影响。我们将在本报告中深入分析该漏洞的影响。
在本次简报中,我们将介绍如何获得灵感并发现这一有趣的漏洞。同时,我们的发现再次验证了这句话:“你曾以为的安全港,实际上是敌人的水域。”