news 2026/7/18 0:16:01

热门Python库存在元数据投毒攻击漏洞

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
热门Python库存在元数据投毒攻击漏洞

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的问题。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 10:31:25

告别文献 “乱炖”!宏智树 AI 手把手教你写出有灵魂的文献综述

作为深耕论文写作科普的教育博主,后台总能刷到这样的求助:“读了几十篇文献,写出来的综述像‘大杂烩’”“观点堆砌没逻辑,被导师批‘没找到研究缺口’”“参考文献格式错一堆,查重率还居高不下”。文献综述不是简单的…

作者头像 李华
网站建设 2026/7/1 15:34:25

0x3f第32天复习 (12;30-12:50)

子串基础前缀和思考前缀和的定义是什么和为k的子数组1min ac两数之和接雨水三数之和ac字母异位词分组ac最长连续序列ac移动零ac无重复字符的最长子串ac找到字符串中所有字母异位词ac滑动窗口最大值1min ac1min ac最小覆盖子串1min ac1min ac思考买卖股票的最佳时机1min ac1min …

作者头像 李华
网站建设 2026/6/7 4:53:36

大模型算法社招面试全攻略:技术要点+简历优化+代码题解析

本文作者分享了从国企跳槽至大模型算法领域社招的完整经历。详细介绍了职业规划考量、简历准备技巧,以及大模型相关技术面试要点,包括SFT、RAG、Agent等热门技术方向。同时提供了常见代码题考察情况和业务方向分析,为想进入大模型领域的求职者…

作者头像 李华
网站建设 2026/7/12 1:05:22

算法题 增减字符串匹配

942. 增减字符串匹配 问题描述 给定只含 "I"(增加)和 "D"(减少)的字符串 s,令 n s.length。 根据 s 构造一个排列 perm(长度为 n 1),使得对于所有的 i&#x…

作者头像 李华
网站建设 2026/7/1 10:31:25

基于Django的蔬菜批发管理系统设计与实现

基于Django的蔬菜批发管理系统设计与实现 一、系统开发背景与意义 蔬菜批发行业作为农产品流通的关键环节,长期面临供应链效率低、损耗率高、交易流程繁琐等问题。传统模式下,供应商信息分散导致采购比价困难,库存依赖人工盘点易造成积压或缺…

作者头像 李华
网站建设 2026/7/1 10:31:28

京东价格API:历史价格趋势分析与定价参考技术实现

本文介绍如何通过京东开放平台API获取商品历史价格数据,并基于时间序列分析构建定价参考模型。以下为完整技术方案:一、API接入准备认证流程开发者需注册京东宙斯账号,申请price_histroy接口权限,获取app_key和app_secret。请求头…

作者头像 李华