" 深度学习框架(如 PyTorch、TensorFlow 等)已成为 AI 应用的基础设施,其内部 API 的稳定性与安全性直接影响模型训练与部署的可靠性。然而,现有针对深度学习框架的模糊测试方法,大多将 API 视为相互独立的测试对象,忽略了一个关键事实:不同深度学习框架之间,乃至同一框架内部,存在大量功能高度相似的API,而这些 API 往往共享相同或相似的漏洞模式。
基于这一洞察,研究者提出了MirrorFuzz, 一种结合大语言模型(LLM)与共享漏洞(Shared Bugs)概念的API级模糊测试框架,通过"漏洞镜像"的方式显著提升深度学习框架API的漏洞发现能力。 "
- 📄 论文标题:MirrorFuzz: Leveraging LLM and Shared Bugs for Deep Learning Framework APIs Fuzzing
📅 发表时间: IEEE Transactions on Software Engineering, 2025
🏫 作者单位:国防科技大学、浙江大学等
01---方法介绍
如图1所示,PyTorch的torch.nn.functional.avg_pool2d和TensorFlow的tf.nn.avg_pool3d用于池化操作的API都存在同样的问题。将avg_pool2d中的步长参数设置为0(一个无效值)会导致PyTorch崩溃,在同等条件下,TensorFlow的avg_pool3d API也会发生类似情况。然而,现有的深度学习(DL)框架模糊测试方法忽视了深度学习框架之间的相似性以及这些相似性可能带来的潜在安全风险,并且未能利用共享的漏洞进行早期漏洞检测。

图 1. 共享漏洞的例子
MirrorFuzz 的核心思想可以概括为一句话:"已知一个 API 的漏洞,可以作为'镜像',去引导发现其他相似 API 的漏洞。"
整体框架由三个关键阶段组成:
① Buggy API 识别
利用 LLM 从真实 Issue 中理解并抽象已知漏洞模式;
② 相似 API 检索
在同一或不同深度学习框架中定位语义与接口相似的 API;
③ 镜像式用例生成
将已知漏洞的触发模式迁移到目标 API,生成高质量 Fuzzing 用例。

图 2. MirrorFuzz整体框架
小结:MirrorFuzz 不从"随机变异"出发,而是从"历史漏洞知识"出发进行定向测试。
02---关键机制
- 共享漏洞视角,首次系统性利用 DL 框架 API 之间的漏洞同源性。
- LLM 驱动的漏洞理解,从自然语言 Issue 中提炼可执行的漏洞模式。
- 镜像式 Fuzzing,将已有漏洞作为种子,引导定向测试。
| 模块 | 实现方式 | 主要作用 |
|---|---|---|
| 漏洞语义抽取 | 利用 LLM 理解 Issue 描述与崩溃信息 | 抽象可迁移的漏洞触发模式 |
| 相似 API 匹配 | 基于 API 名称、参数与功能语义 | 发现潜在共享漏洞的 API 对 |
| 镜像用例生成 | 将已知漏洞用例映射至目标 API | 生成高命中率的 Fuzzing 输入 |
| API 级 Fuzzing 执行 | 自动运行并监控崩溃与异常 | 发现真实可复现漏洞 |
小结:Mirror" 的本质是漏洞知识迁移,而非简单代码复制。
03---实验结果
实验使用Python实现了MirrorFuzz,并选择了常用的深度学习(DL)框架,包括PyTorch(v2.4.1)、TensorFlow(2.17.0)、OneFlow(v0.9)和Jittor(v1.3.9.5)。主要实验结果如下。
表1显示了不同提示策略下对有缺陷API识别能力。结果表明提供有缺陷的API识别示例、完整的问题上下文,并通过少量样本的思维链(CoT)技术来细化任务,这些都有助于提高大型语言模型(LLM)的性能。
表1. 不同提示策略下对有缺陷API识别的实验结果

表2显示了通过MirrorFuzz发现的BUG情况。对于错误类型,"SEGV"代表分段错误,"FPE"代表浮点异常,"ABORT"代表程序异常终止。"OTHER"包括内部故障和编译失败。
表2. 通过MirrorFuzz发现的BUG

小结**:MirrorFuzz利用LLM从错误报告中识别出有缺陷的API,并为类似API合成有针对性的测试用例,以诱发类似的错误。实验评估MirrorFuzz,发现了315个错误,其中262个是新发现的,此外,MirrorFuzz在TensorFlow上的代码覆盖率提高了39.92%,在PyTorch上的代码覆盖率提高了98.20%。**
📌 总结
MirrorFuzz 提出了一种全新的 DL 框架安全测试范式:以历史漏洞为知识源,以 API 相似性为桥梁,以LLM为理解引擎 。该工作表明,在复杂软件系统中,"漏洞是可以复用的知识"。这一思路不仅适用于深度学习框架,也为库级Fuzzing、API 安全测试提供了重要启示。
📣 欢迎留言讨论
-
你认为"共享漏洞"是否在其他软件生态中同样普遍存在?
-
LLM 在安全测试中更适合作为生成器,还是知识抽象器?
📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!