文章总结: 腾讯云安全团队通过自研VulnAgent发现NVIDIAMegatron-LM和ModelOptimizer中存在三个高危反序列化漏洞(CVE-2025-33248/33247/2026-24141),攻击者可利用恶意模型文件实现任意代码执行。文章指出AI基础设施普遍存在因反序列化操作缺乏安全校验导致的风险,可能引发算力劫持、模型窃取和供应链污染。建议升级至PyTorch2.6+等安全版本、使用Safetensors格式替代传统序列化文件,并实施运行环境隔离与文件完整性校验。 综合评分: 90 文章分类: 漏洞分析,AI安全,解决方案,安全工具,供应链安全
「AI开源组件安全风险」系列二:VulnAgent发现 NVIDIA 3个AI基础设施漏洞,并获官方致谢
安全攻防团队
2026年4月3日 17:35 广东
以下文章来源于云鼎实验室 ,作者腾讯云安全
云鼎实验室 .
腾讯云鼎实验室官方微信公众号
一、 引言:当AI基础设施成为攻击目标
随着大语言模型(LLM)的爆发式发展,AI 训练和推理框架已成为支撑整个行业的关键基础设施。NVIDIA Megatron-LM 作为分布式训练框架的翘楚,在 GitHub 上斩获超过15K Stars,被广泛应用于 GPT、DeepSeek、GLM 等主流大模型的训练过程。而 NVIDIA Model Optimizer 则是模型部署优化的核心工具,负责将训练好的模型量化压缩,适配TensorRT-LLM、vLLM 等推理引擎。
而近年来,Megatron-LM、vLLM、Model Optimizer等主流框架频繁披露安全漏洞,这些被视为”AI时代操作系统”的基础设施,其安全水位可能偏低,暴露了模型加载、推理服务等关键环节的安全缺陷。一旦这些漏洞被攻击者利用,其背后价值数亿美元的高性能算力资源将面临劫持风险,核心模型资产亦可能遭到窃取。腾讯安全云鼎实验室借助自研漏洞挖掘智能体VulnAgent,对这些主流AI框架进行深度安全审计,连续发现三个高危反序列化漏洞:CVE-2025-33248、CVE-2025-33247(Megatron-LM)以及 CVE-2026-24141(Model Optimizer),均获得 NVIDIA 官方致谢。
本文将以这三个漏洞为切入点,重点分析AI基础设施中因反序列化导致的安全漏洞,剖析AI基础设施面临的系统性安全风险。
二、 反序列化漏洞:AI框架中普遍存在的安全问题
#
2.1 什么是反序列化漏洞?
反序列化漏洞是 Python 生态中最为危险的漏洞类型之一。当程序使用 pickle、torch.load()、numpy.load()等函数加载数据时,如果数据源被攻击者控制,便可触发任意代码执行。
在AI训练场景中,模型文件、数据集文件、量化校准数据等都需要频繁序列化/反序列化,这为攻击者提供了大量的攻击面。
2.2 为何AI框架频发此类漏洞?
可能原因:
1. 功能优先导向:AI 框架设计历史上优先考虑训练效率,安全功能滞后。PyTorch 在 2025 年发布的 2.6 版本才默认启用 weights_only=True,此前近9年(2016-2025)允许加载任意对象
2. 生态依赖复杂:PyTorch 2.6 之前版本、 NumPy 1.16.3 之前版本、Yaml 5.3.1 之前版本及 Pickle 等底层库默认允许反序列化任意对象,缺乏安全边界
3. 使用场景特殊:模型文件体积庞大(GB级别),安全校验成本高,开发者习惯直接加载,缺乏校验机制
2.3 典型案例
以下是近年来AI基础设施中已公开的反序列化相关漏洞:
| | | | | — | — | — | | 组件 | 漏洞编号 | 核心问题 | | PyTorch | CVE-2024-48063 | 分布式RPC框架中 RemoteModule 反序列化未校验输入,可远程执行任意命令 | | Keras | CVE-2024-3660 | 加载恶意模型文件时,通过 Lambda 层注入并执行任意代码,绕过 safe_mode 防护 | | Megatron-LM | CVE-2025-23354 | ensemble_classifier 脚本允许攻击者篡改输入并执行任意代码 | | MLflow | CVE-2024-37052 ~ 37060 | 模型存储、实验追踪等多个模块存在 pickle 反序列化漏洞,共计9个高危CVE | | vLLM | CVE-2025-62164 | Completions API 中通过恶意嵌入向量触发 torch.load() 反序列化,导致远程代码执行 |
可以看到,不安全的反序列化问题贯穿了从底层框架(PyTorch、Keras)到训练框架(Megatron-LM)、模型管理(MLflow)及推理服务(vLLM)的整个AI技术栈。而本文发现的三个NVIDIA CVE进一步印证了这一趋势。
三、 漏洞详解:从不安全反序列化到任意代码执行
#
⚠️ 重要说明:本文涉及的漏洞均已通过 CNVD 和 NVDB 提交,并获得 NVIDIA 官方确认,官方已发布修复方案。请相关用户及时更新至最新版本以修复相关漏洞,避免因版本滞后导致运行环境暴露于安全风险之中。
3.1 Megatron-LM 反序列化漏洞
CVE-2025-33248
漏洞原理
Megatron-LM的hybrid_conversion.py 模块用于处理混合 Mamba-Transformer 架构模型在不同并行配置间的转换。这是 Megatron-LM 支持新兴架构的关键组件,直接影响模型的灵活部署能力。漏洞产生的根本原因:在加载模型文件时直接调用 torch.load(),未设置 weights_only=True 参数:
# get the latest iteration
tracker_filename = os.path.join(args.load_dir,'latest_checkpointed_iteration.txt')
withopen(tracker_filename,'r')as f:
metastring = f.read().strip()
try:
iteration =int(metastring)
except ValueError:
raise Exception("Invalid iteration found in latest_checkpointed_iteration.txt!")
out_iteration = iteration ifnot args.reset_iterations else0
# get model directory and model parallel ranks
input_model_dir = os.path.join(args.load_dir,'iter_{:07d}'.format(iteration))
input_sub_models = os.listdir(input_model_dir)
# load one of the model parallel ranks to get arguments
sample_model_file = os.path.join(input_model_dir, input_sub_models[0],"model_optim_rng.pt")
# 危险:直接执行恶意代码
sample_model = torch.load(sample_model_file)# 默认 weights_only=False
在 PyTorch 2.6 之前,torch.load()的默认行为允许加载任意 Python 对象,攻击者可借此执行任意代码。这意味着,一旦用户加载恶意 checkpoint 文件,攻击者精心编造的任意代码就会在目标机器上执行。
官方修复方案
CVE-2025-33248 漏洞披露后,Megatron-LM官方修复方案是强制设置 torch 版本为2.6+,从而保证 torch.load() 的参数 weights_only 默认为 True。
dependencies = ["torch>=2.6.0", "numpy", "packaging>=24.2"]
CVE-2025-33247
漏洞原理
Megatron-LM的pretrain_gpt.py 模块用于 GPT 模型预训练和 SFT(监督微调)。漏洞产生的根本原因:在于其量化配置(Quantization Recipe)加载流程中直接调用yaml.load(Loader=yaml.FullLoader), 而非使用yaml.SafeLoader。
def from_yaml_file(recipe_yaml_path:str)->"RecipeConfig":
"""Loads recipe from yaml configuration."""
ifnot HAVE_YAML:
raise ImportError("yaml is not installed. Please install it with `pip install pyyaml`.")
withopen(recipe_yaml_path,"r")as f:
# 危险:直接执行恶意代码
config = yaml.load(f, Loader=yaml.FullLoader)#
return RecipeConfig.from_config_dict(config)
yaml.FullLoader 支持 Python 对象构造标签,攻击者构造恶意 YAML 文件即可在加载时执行任意代码。这意味着,一旦用户加载恶意 YAML 文件,攻击者精心编造的任意代码就会在目标机器上执行。
官方修复方案
CVE-2025-33247 漏洞披露后,Megatron-LM 官方修复方案是强制设置 yaml.load() 的参数 Loader 为 SafeLoader。
withopen(recipe_yaml_path,"r")as f:
config = yaml.load(f, Loader=yaml.SafeLoader)
3.2 Model Optimizer 反序列化漏洞(CVE-2026-24141)
漏洞原理
Model Optimizer 的 ONNX 量化模块(modelopt.onnx.quantization)是模型部署前压缩的关键步骤,用于将 FP32 模型量化为 INT8,大幅降低推理成本。漏洞产生的根本原因:在加载量化校准数据时,使用了numpy.load(allow_pickle=True):
# 不安全的实现
calibration_data = np.load(args.calibration_data_path, allow_pickle=True)
NumPy的allow_pickle参数在True时,可加载包含任意Python对象的.npy文件,与pickle模块存在相同的安全风险。这意味着,一旦用户加载恶意文件,攻击者精心编造的任意代码就会在目标机器上执行。
官方修复方案
CVE-2026-24141漏洞披露后,Model Optimizer官方修复方案是在加载量化校准数据时采用用户的输入参数trust_calibration_data,默认值False:
calibration_data = np.load(
args.calibration_data_path, allow_pickle=args.trust_calibration_data
)
#
#
四、 AI基础设施面临的三重风险
#
4.1 算力资产劫持风险
算力即金钱。现代 GPU 集群的算力价值远超传统服务器:
-
单卡价值高昂:NVIDIA H100单卡售价约2.5~3万美元,一个千卡训练集群的硬件价值可达数千万美元
-
训练成本惊人:据公开报道估算,GPT-4的训练成本超过1亿美元;Meta 训练 Llama 3 使用了 16,000 张 H100,消耗超过 2,000万 GPU 小时攻击者通过反序列化漏洞获得服务器控制权后,可:
-
挖矿牟利:部署加密货币挖矿程序,持续消耗高价 GPU 算力
-
算力盗用:私自运行模型训练任务,窃取企业算力资源
-
资源转售:将算力挂到黑市二次租赁,非法牟利
4.2 模型资产窃取风险
大模型训练成本动辄数百上千万美元,模型权重是企业的核心资产:
-
直接窃取:下载模型文件(数十GB至数百GB)
-
数据泄露:窃取训练数据集,可能包含敏感信息
4.3 供应链污染风险
AI模型供应链呈现**“中心化+长链条”**特征:
攻击者只需在任一环节注入恶意代码:
-
预训练模型投毒:在 Hugging Face 等平台上传含恶意 pickle 的模型文件,用户加载后即触发代码执行
-
量化数据投毒:构造恶意量化校准数据(.npy文件),在模型量化环节触发代码执行
-
训练配置投毒:发布恶意训练配置,加载时触发代码执行
此次发现的三个CVE正是典型的供应链攻击节点:
- Megatron-LM 负责训练阶段(源头)
- Model Optimizer 负责部署阶段(出口)
一旦被利用,可实现对整个AI生产链的渗透。
五、 安全缓解措施
#
5.1 安全编码规范
-
禁用不安全的反序列化调用:在代码中严格避免使用 torch.load() 的默认参数,强制设置 weights_only=True;使用 yaml.SafeLoader 替代 yaml.FullLoader;禁止 numpy.load(allow_pickle=True) 加载不可信数据
-
升级依赖版本:将 PyTorch 升级至 2.6+ 版本(默认启用 weights_only=True);将 PyYAML 升级至 6.0+ 版本;定期使用 SCA 工具扫描第三方依赖的已知漏洞
-
使用安全数据格式:优先采用 Safetensors 格式替代传统的 .pt/.pkl 模型文件,从根本上杜绝反序列化攻击面;量化校准数据使用 JSON、CSV 等纯数据格式替代 .npy(pickle模式)
-
代码安全审查:使用 SAST 工具自动化扫描 pickle.load()、torch.load()、yaml.load(FullLoader)、numpy.load(allow_pickle=True) 等危险调用模式,将安全检查纳入 CI/CD 流程
5.2 模型文件与数据完整性校验
-
来源验证:仅从官方渠道或可信源获取模型文件和预训练权重,避免使用来路不明的 checkpoint 文件
-
哈希校验:对模型文件、量化校准数据、训练配置文件进行 SHA-256 哈希校验,确保文件未被篡改
-
模型扫描:在加载前使用安全工具(如 Hugging Face 的 picklescan)扫描模型文件中是否包含恶意序列化对象
5.3 运行环境隔离
-
最小权限原则:AI 训练和推理服务以非 root 用户运行,限制文件系统和网络访问权限
-
容器化部署:使用容器隔离训练/推理环境,限制容器的系统调用能力(如通过 seccomp、AppArmor 策略)
-
网络隔离:训练集群与外部网络严格隔离,仅开放必要的数据传输通道,防止攻击者在获取代码执行权限后进行横向移动或数据外传
注:腾讯安全产品已全线支持上述漏洞的检测。
六、 结语
#
此次针对 NVIDIA Megatron-LM 与 Model Optimizer 的安全研究表明,反序列化风险已成为AI基础设施中不可忽视的系统性安全短板:
1. 漏洞普遍性:三个高危漏洞分布在预训练和后训练两个关键环节,涵盖模型文件加载、量化配置解析、校准数据加载等核心流程
2. 影响严重性:可导致算力劫持、模型窃取、供应链污染,直接威胁价值数亿美元的GPU集群和核心模型资产
3. 生态脆弱性:在供应链场景下,从代码缺陷到攻击实现的路径清晰且利用门槛低,攻击者仅需构造恶意模型文件或配置文件即可触发远程代码执行
#
附录:
「AI开源组件安全风险」系列一:配置缺陷,让你的 GPU 沦为矿机
END
更多精彩内容点击下方扫码关注哦~
关注云鼎实验室,获取更多安全情报
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全攻防团队 《「AI开源组件安全风险」系列二:VulnAgent发现 NVIDIA 3个AI基础设施漏洞,并获官方致谢》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论