来源:至顶网
Hugging Face模型中使用的热门AI和机器学习Python库存在漏洞,这些库的下载量达到数千万次。该漏洞允许远程攻击者在元数据中隐藏恶意代码,当加载包含被投毒元数据的文件时,恶意代码会自动执行。
受影响的开源库包括NeMo、Uni2TS和FlexTok,分别由英伟达、Salesforce以及苹果与瑞士联邦理工学院视觉智能与学习实验室(EPFL VILAB)联合开发。
这三个库都使用了Hydra,这是Meta维护的另一个Python库,通常用作机器学习项目的配置管理工具。具体来说,漏洞涉及Hydra的instantiate函数。
Palo Alto Networks的Unit 42团队发现了这些安全漏洞并报告给库的维护者,维护者随后发布了安全警告、修复补丁,其中两个案例还分配了CVE编号。虽然威胁猎人表示目前尚未发现这些漏洞被实际利用,但"攻击者有充分的机会利用它们"。
Unit 42恶意软件研究工程师Curtis Carmony在周二的分析中写道:"开发者通常会创建自己的最先进模型变体,采用不同的微调和量化方法,通常来自与知名机构无关的研究人员。攻击者只需要创建现有热门模型的修改版本,声称具有真实或虚假的优势,然后添加恶意元数据。"
此外,Hugging Face不像处理其他文件那样容易访问元数据内容,也不会将使用safetensors或NeMo文件格式的文件标记为潜在不安全。
Hugging Face上的模型使用超过100种不同的Python库,其中近50种使用Hydra。Carmony写道:"虽然这些格式本身可能是安全的,但处理它们的代码存在非常大的攻击面。"
Hydra漏洞分析
如前所述,这些漏洞与NeMo、Uni2TS和FlexTok使用hydra.utils.instantiate函数从模型元数据加载配置的方式有关,这允许远程代码执行(RCE)。
这些库的创建者或维护者似乎忽略了instantiate函数不仅接受要实例化的类名,还接受任何可调用对象的名称并向其传递提供的参数这一事实。
通过利用这一点,攻击者可以使用内置Python函数(如eval和os.system)更容易地实现RCE。
Meta已更新Hydra文档,警告使用instantiate时可能发生RCE,并敦促用户添加阻止列表机制,在调用前将_target_值与危险函数列表进行比较。但是,阻止列表机制尚未在Hydra发布版本中提供。
NeMo库漏洞
NeMo是英伟达于2019年创建的基于PyTorch的框架。其.nemo和.qnemo文件扩展名是包含model_config.yaml文件的TAR文件,分别存储模型元数据以及.pt文件或.safetensors文件。
问题在于,在NeMo文件调用hydra.utils.instantiate API之前,元数据没有经过清理,这允许攻击者加载具有恶意制作元数据的.nemo文件,触发漏洞并实现RCE或篡改数据。
英伟达发布了CVE-2025-23304来跟踪这个高严重性错误,并在NeMo 2.3.2版本中发布了修复。
NeMo还与Hugging Face集成,攻击者可以在模型下载后通过相同的代码路径利用此漏洞。
根据Unit 42的数据,Hugging Face上有超过700个来自各种开发者的模型采用NeMo文件格式。
Uni2TS库漏洞
Uni2TS是Salesforce创建的PyTorch库,用于其时间序列分析的Morai基础模型以及在Hugging Face上发布的一系列模型。
该库专门使用.safetensors文件,这是Hugging Face创建的用于存储张量的安全格式,与pickle相对,pickle在加载过程中允许任意代码执行。
使用这些库的Salesforce模型在Hugging Face上有数十万次下载,其他用户也发布了这些模型的多个改编版本。
Salesforce于7月31日发布了CVE-2026-22584并部署了修复。
FlexTok库漏洞
去年早些时候,苹果和EPFL VILAB创建了FlexTok,这是一个基于Python的框架,使AI/机器学习模型能够处理图像。
与uni2TS一样,FlexTok仅使用safetensors文件,它扩展了PyTorchModelHubMixin,可以从.safetensors文件加载配置和元数据。解码元数据后,FlexTok将其传递给hydra.utils.instantiate,这会触发漏洞。
截至2026年1月,除了EPFL VILAB发布的模型外,Hugging Face上似乎没有其他模型使用ml-flextok库,这些模型总计有数万次下载。
苹果和EPFL VILAB通过使用YAML解析配置修复了这些安全问题。维护者还添加了可以调用Hydra的instantiate函数的类的允许列表,并更新文档以说明应该只加载来自可信来源的模型。
Q&A
Q1:这次发现的Python库漏洞具体是什么问题?
A:漏洞存在于NeMo、Uni2TS和FlexTok这三个热门AI库中,它们都使用Hydra库的instantiate函数。问题在于该函数不仅接受类名,还接受任何可调用对象,攻击者可以利用这一点在模型元数据中隐藏恶意代码,当文件被加载时代码会自动执行。
Q2:Hugging Face平台上有多少模型受到影响?
A:根据Unit 42的统计,Hugging Face上超过700个模型使用NeMo文件格式,使用Salesforce相关库的模型有数十万次下载,FlexTok相关模型有数万次下载。平台上使用的超过100种Python库中,近50种使用了存在漏洞的Hydra库。
Q3:这些漏洞现在修复了吗?
A:是的,相关厂商已经发布了修复。英伟达在NeMo 2.3.2版本中修复并发布了CVE-2025-23304,Salesforce在7月31日发布了CVE-2026-22584修复,苹果和EPFL VILAB通过使用YAML解析和添加允许列表机制修复了FlexTok的问题。