揭秘AI Agent如何精准挖掘LLaMA-Factory高危漏洞
本教程基于腾讯悟空团队的真实案例,详细阐述如何利用AI Agent的多智能体协作架构,自动化挖掘开源大模型微调框架LLaMA-Factory中的一个高危远程代码执行0day漏洞(CVE-2025-53002,CVSS v3.1: 8.3),并推动官方完成修复。通过本教程,你将深入理解AI Agent在自动化安全审计中的核心流程与技术细节。
一、LLaMA-Factory框架简介
LLaMA-Factory 是一款功能强大且对用户友好的开源框架,在 GitHub 上累计获得了超过 53K Stars,专注于大语言模型(LLM)的高效微调(Fine-tuning)。凭借其易用性和灵活性,LLaMA-Factory 已成为众多开发者和研究团队进行模型训练与部署的首选工具。

(图:LLaMA-Factory Github Index)
然而,在对这样的大型开源社区项目进行深度安全审计时,传统手段往往难以发现隐藏的威胁。此次,悟空AI Agent成功识别了一个严重的远程代码执行漏洞:CVE-2025-53002(CVSS v3.1: 8.3)。

(图:LLaMA-Factory Github Star History)
小提示: 为何选择LLaMA-Factory?因为它目前是最流行的大模型微调框架之一,拥有庞大的用户基数,一旦存在漏洞,影响面极广。选择此类项目作为安全审计目标,能最大化体现AI Agent的实际价值。
二、悟空AI Agent的实战效能
悟空AI Agent在此次漏洞挖掘中展现了强大的自动化漏洞挖掘能力,特别是在多智能体协作架构(Multi-Agent)的支持下,突破了传统手段的限制。通过以下几个关键阶段,悟空AI Agent逐步发现了漏洞的核心:
- Audit Agent: 首先,Audit Agent负责从Web UI输入追踪到后台的数据处理参数及接口,从入口出发追踪目标数据流,并自动决策对下层调用函数的展开分析,直至发现存在漏洞特征的危险函数调用(不安全的反序列化 API 调用)。
- Review Agent: 随后,Review Agent对 Audit Agent所提取的漏洞相关代码信息进行进一步分析,通过多重校验与投票机制评估该漏洞触发的约束条件,确定其可利用性。
- Fix Agent: 最终,Fix Agent基于CVEs数据库和内部知识库生成了漏洞修复建议,形成了具体的修复方案。

(图:悟空AI Agent 架构图)
悟空AI Agent在此过程中展现了卓越的程序分析与漏洞发现能力,能够穿透复杂逻辑链,精确定位到不安全的反序列化操作(torch.load)及其触发路径。悟空AI Agent不仅为传统的漏洞挖掘方法提供了补充,也为自动化安全审计提供了可行的解决方案。
重点理解: 整个流程的关键在于 Audit Agent做数据流追踪、Review Agent做可利用性验证、Fix Agent生成补丁,三者形成完整的自动化漏洞发现与修复闭环。
三、官方响应与修复
在确认该漏洞有效后,我们立即通过GitHub Security Advisories渠道向LLaMA-Factory官方团队提交了详尽的技术报告(含PoC复现步骤,已同步报送CNVD等监管单位)。
官方响应
LLaMA-Factory团队对此高度重视,迅速确认了漏洞的有效性和严重性,并颁发CVE漏洞编号 CVE-2025-53002。

(图:Github官方项目Security公告)
修复方案
官方对 src/llamafactory/model/model_utils/valuehead.py 的关键代码进行了加固:在 torch.load() 调用中显式添加了安全参数 weights_only=True,从根本上阻断了利用Pickle反序列化执行任意代码的可能性。
# src/llamafactory/model/model_utils/valuehead.py
- state_dict = torch.load(vhead_file, map_location="cpu")
+ state_dict = torch.load(vhead_file, map_location="cpu", weights_only=True)
▲ 关键补丁:启用PyTorch安全模式阻断反序列化攻击
小提示: 在 PyTorch 2.6 及以上版本中,
weights_only默认已为True,但 LLaMA-Factory 的setup.py仅要求torch>=2.0.0,导致旧版本默认处于不安全状态。升级依赖或手动添加该参数是简单有效的修复方式。
四、技术分析
漏洞摘要
在 LLaMA Factory 的训练过程中,发现一处严重的远程命令执行(RCE)漏洞。该漏洞源于加载 vhead_file 时未采取充分的安全措施。恶意攻击者仅需通过 WebUI 界面传递一个恶意的 Checkpoint path 参数,即可在宿主系统上执行任意恶意代码。整个攻击过程具有隐蔽性,受害者难以察觉。漏洞的根本原因是加载 vhead_file 参数时,未设置安全参数 weights_only=True。
注意: 在 torch 版本 < 2.6 中,
torch.load()的默认设置为weights_only=False。而 LLaMA Factory 的setup.py仅要求torch>=2.0.0,使得受影响版本默认处于不安全状态。
影响范围
该漏洞影响的范围包括所有使用LLaMA-Factory框架的版本(<=0.9.3)。受影响的产品涉及广泛的应用场景,包括大语言模型的训练与推理。
风险等级
CVSS 3.1评分为8.3(高危),表明该漏洞对安全性构成了极大的威胁。成功利用此漏洞后,攻击者能够执行任意恶意代码,可能导致权限提升、信息泄露、数据篡改等一系列恶劣后果,甚至可能破坏整个AI基础设施的安全性。
漏洞触发流程
具体触发步骤如下:
- 在 LLaMA Factory 的 WebUI 中,当用户设置 Checkpoint path 时,该值会修改传递给训练过程的
adapter_name_or_path参数。 - 训练过程中使用的
adapter_name_or_path参数,在src/llamafactory/model/model_utils/valuehead.py文件中用于从 Hugging Face 获取对应的value_head.bin文件。 - 随后,该文件通过
torch.load()加载,但未设置安全参数weights_only=True,最终导致远程代码执行。

(图:相关代码位置:src/llamafactory/webui/runner.py)

(图:相关代码位置:src/llamafactory/model/model_utils/valuehead.py)
小提示: 攻击者可以构造一个恶意的
value_head.bin文件(本质是Pickle序列化对象),其中包含任意代码。只要受害者将Checkpoint path指向攻击者控制的路径,便会触发RCE。因此,切勿在生产环境使用未知来源的Checkpoint文件。
常见问题(FAQ)
- Q:这个漏洞需要用户交互吗?
A:不需要主动交互,攻击者只需诱导用户(或通过钓鱼方式)在WebUI中设置恶意Checkpoint path,即可在训练开始时自动触发。 - Q:如何确认自己是否受到影响?
A:检查LLaMA-Factory版本是否 ≤0.9.3,以及PyTorch版本是否 < 2.6。如果同时满足,则存在风险。建议升级到官方最新版本或手动添加补丁。 - Q:悟空AI Agent是如何定位到
valuehead.py这个文件的?
A:Audit Agent从WebUI输入参数开始,逐步追踪数据流,分析所有可能的调用链,最终在valuehead.py中发现未加安全参数的torch.load()调用点,并通过语义分析判定其为不安全的反序列化点。 - Q:除了添加
weights_only=True,还有其他防御手段吗?
A:还可以对用户输入的Path进行严格白名单校验,限制只能加载已签名或经过验证的Checkpoint文件。但最根本的修复仍是使用安全参数。
结语
本次对LLaMA-Factory的实战审计,展示了悟空AI Agent在真实、复杂开源项目中发现高危漏洞的效率与能力。它不仅缩短了漏洞从潜伏到被发现的时间窗口,也通过标准化的报告流程加速了厂商响应与修复。未来,AI Agent将在网络安全领域扮演越来越核心的角色:
- 自动化深度审计: 实现对大型项目、复杂代码的高效、深度、持续的全自动安全审查。
- 0day威胁预警: 主动挖掘未知漏洞,从漏洞利用链上精准识别0day漏洞,提升整体防御前置性。
- 安全开发左移: 集成至CI/CD流程,辅助开发者在早期规避安全缺陷,降低修复成本。
悟空AI Agent的探索将持续深化,致力于推动安全研究与实践迈入智能化新纪元。
