PyTorch 机器学习库中存在严重漏洞,可被利用来执行远程代码。该问题影响 PyTorch 的分布式 RPC(远程过程调用)框架,编号为CVE-2024-5480,其存在原因是该框架未验证 RPC 操作期间调用的函数。
该框架用于分布式训练场景,通过滥用内置的 Python 函数,该漏洞可被利用在多 CPU RPC 通信期间执行任意命令。
NIST 公告指出:“该漏洞源于当工作节点序列化并将 PythonUDF(用户定义函数)发送到主节点时对函数调用缺乏限制,主节点随后在未经验证的情况下反序列化并执行该函数。”
AI 和 ML 的漏洞赏金平台 Huntr解释说,当分布式 RPC 框架用于多 CPU RPC 通信时,工作节点可以使用特定函数将函数和张量序列化并打包成 PythonUDF,然后将其发送到主节点。
Huntr 解释道:“Master 会反序列化接收到的 PythonUDF 数据并调用 _run_function。这允许 worker 执行指定的函数,但由于函数调用没有限制,因此可以通过调用 eval 等内置 Python 函数来导致远程代码执行。”
远程攻击者可以利用此漏洞破坏启动分布式训练的主节点,从而导致与人工智能相关的敏感数据被盗。
CVE-2024-5480 的 CVSS 评分为 10,于 4 月 12 日报告,影响 PyTorch 2.2.2 及更早版本。机器学习库的最新版本目前为2.3.1 版。
报告该漏洞的研究人员因发现该漏洞获得了 1,500 美元的漏洞赏金。