Hugging Face Diffusers 漏洞可让模型仓库执行任意代码

Hugging Face Diffusers 漏洞可让模型仓库执行任意代码

导语:Hugging Face 的 Diffusers 库中存在三个高危安全漏洞,可能允许攻击者通过精心构造的模型仓库在加载时静默执行任意代码,威胁人工智能(AI)供应链安全。这些漏洞已在 Diffusers 0.38.0 版本中得到修复。

Hugging Face 的 Diffusers 库披露了三个高危安全漏洞,攻击者可以利用精心构造的模型仓库,在加载该仓库的机器上悄无声息地执行任意代码,从而对人工智能(AI)供应链安全构成威胁。

Zafran Labs 的研究人员 Gal Zaban 和 Ido Shani 在一份分析报告中表示:"这些漏洞绕过了 trust_remote_code,该机制本是为了阻止未经审核的代码在自定义管道加载流程中运行而设计的安全防护措施。"

随着 Hugging Face 成为"AI 时代的 GitHub",其各类库和仓库在企业环境中被广泛使用,Diffusers 这类库中的漏洞由于其嵌入在生产管道、CI/CD 系统及容器镜像中的方式,可能赋予攻击者广泛的访问权限。

Diffusers 是一个 Python 包,作为最先进(SOTA)的预训练扩散模型库,用于生成视频、图像和音频。根据 pepy.tech 公布的统计数据,该包在 2026 年 7 月的下载量已超过 810 万次。

该库的核心能力之一,是通过 DiffusionPipeline API 从 Hugging Face hub 仓库本地加载模型,该 API 又利用配置文件来初始化特定的管道和组件类,以及自定义管道代码。Diffusers 中的 "trust_remote_code" 参数是一项安全防护机制,用于控制模型仓库内托管的自定义 Python 代码是否允许在 "from_pretrained()" 加载过程中执行。将其设置为 "True" 允许自定义代码执行,而设置为 "False" 或省略该参数则会阻止未经验证的代码运行。

原文配图

Zafran 解释说:"所有不同 RCE 变体的根本原因在于……信任检查完全存在于第一阶段。因此,任何使得加载器看到的是守门人(gate)未曾审查的自定义代码的方法,都能绕过 trust_remote_code 机制。"每个变体都可追溯到检查时间与使用时间(TOCTOU)之间的时间差问题,因为模型下载被设计为两次连续、非原子的 HTTP 请求,而不是一次"单一原子操作",而 "trust_remote_code" 安全门禁仅针对第一次请求运行。

经过负责任的披露流程,这些漏洞已在 2026 年 5 月初发布的 Diffusers 0.38.0 版本中得到修复。任何使用 "DiffusionPipeline.from_pretrained" 加载自定义管道的用户都会受到影响。

研究人员补充指出:"根本问题在于,从 AI 仓库拉取的工件(artifacts)常常被当作被动数据对待,然而配置文件、加载器以及自定义管道代码可以悄然跨越到可执行代码的范畴,把一次普通的模型加载转变为初始访问向量。"

Zafran 表示:"这些漏洞突显了一个关键的需求——必须将 AI 模型仓库视为不受信任的代码,特别是在企业对 Hugging Face 这类平台的依赖持续增长的背景下。"如果一次例行的模型下载中 trust_remote_code 等安全边界被绕过,就会轻而易举地变成任意代码执行的攻击向量。


来源信息

来源:The Hacker News

原文链接:https://thehackernews.com/2026/08/hugging-face-diffusers-flaws-could-let.html

作者:info@thehackernews.com (The Hacker News)