CVE-2025-32434 是PyTorch中的一个严重远程代码执行(RCE)漏洞,PyTorch是深度学习和神经网络中广泛使用的Python库。
该漏洞存在于torch.load()函数中,即使使用了看似安全的weights_only=True参数。weights_only=True选项旨在通过仅允许加载模型参数来防止代码执行。然而,研究人员找到了一种绕过此保护的方法。
| 状态 | 版本 |
|---|---|
| 有漏洞 | PyTorch 2.5.1及更早版本 |
| 已修复 | PyTorch 2.6.0及更高版本 |
未认证的攻击者可以创建一个恶意模型文件,当受害者加载该文件时,会执行任意代码。攻击无需用户交互,可导致系统完全受损。该漏洞利用了PyTorch使用Python的pickle序列化的方式,允许攻击者在模型文件中嵌入恶意代码。
此漏洞尤其危险,因为许多开发者依赖weights_only=True作为安全措施,但此漏洞证明即使是“安全”选项也不足够。
提供的full.py脚本演示了如何创建一个在加载时写入文件系统的恶意PyTorch模型。
torch.from_file()创建指向目标cron文件的内存映射张量# Memory-mapped file writing
t = torch.from_file("/etc/cron.d/rev",
shared=True,
size=len(asciis),
dtype=torch.uint8)
msg = torch.tensor(asciis, dtype=torch.uint8)
t.copy_(msg) # Writes to /etc/cron.d/rev
本指南提供如何使用CVE-2025-32434概念验证(PoC)脚本的分步说明。
开始之前,请确保您具备:
# Install PyTorch (vulnerable version for testing)
pip install torch==2.5.1
pip install torch