LLM 驱动漏洞传播验证:TransferFuzz-Pro 如何自动调试“继承“来的安全债

" 代码复用在现代软件开发中无处不在------96%的软件至少引入了一个第三方库。然而,复用的代码也会"继承"漏洞:一个 CVE 报告中的漏洞函数,可能已悄然扩散到数十个下游软件中。

传统方法面临两大困境:代码相似性检测只能判断"有没有复用漏洞代码",无法确认漏洞是否可触发,导致大量误报(P1);现有模糊测试方法需要数小时验证单个漏洞,且难以触发涉及复杂逻辑的漏洞(P2)。

为此,论文提出 TransferFuzz-Pro:首个集成 LLM 驱动代码调试技术的全自动化漏洞传播验证框架,通过模拟人类调试过程自动生成程序选项组合,结合二进制级插桩将验证能力扩展至无源码目标。 "
📄 **论文标题:**TransferFuzz-Pro: Large Language Model Driven Code Debugging Technology for Verifying Propagated Vulnerability

📅 **发表期刊:**IEEE Transactions on Software Engineering, Vol.51, No.8, August 2025

🏫 **作者单位:**中国科学院信息工程研究所、中国科学院大学、新南威尔士大学

💡 开源代码:https://github.com/Siyuan-Li201/Transferuzz-Pro

01 方法介绍

TransferFuzz-Pro 的核心思想:利用基础二进制(CVE 报告中的漏洞程序)的已知信息,通过 LLM 自动调试和历史轨迹引导,在目标二进制(复用了漏洞代码的新程序)中高效验证漏洞可触发性。

整体流程包含三个模块:

① 历史轨迹提取------在基础二进制上执行 PoC,提取函数调用序列(FCS)和关键字节轨迹,作为目标二进制的 fuzzing 引导信息;

② 选项组合生成------LLM 分析目标程序的选项处理代码,模拟人类调试过程,迭代生成到达漏洞函数所需的命令行参数组合;

③ 轨迹引导 Fuzzing------利用历史轨迹引导 fuzzing 方向,通过嵌套模拟退火算法和关键字节引导变异策略,高效触发漏洞。

图1 TransferFuzz-Pro的工作流

💡 **小结:**从"手动分析选项 + 源码插桩"升级为"LLM 自动调试 + 二进制插桩",实现全自动化漏洞传播验证。

02 关键机制

🔹 LLM 驱动代码调试------首次将 LLM 用于自动化定向 fuzzing 的选项组合生成,模拟人类调试过程迭代确定程序参数。

🔹 函数级轨迹引导------将基础二进制的漏洞触发函数调用序列迁移到目标二进制,将搜索空间从 3150 条路径缩减至 42 条。

🔹 关键字节引导变异(KBGM)------从 PoC 中提取影响分支约束的关键字节,构建字典引导变异,绕过复杂分支条件。

🔹 嵌套模拟退火(NSA)------为每条历史轨迹建立独立状态机,动态分配能量,优先探索最接近漏洞的状态路径。

模块 设计思路 作用
历史轨迹提取 在基础二进制上执行 PoC 采集运行时信息 提供函数调用序列和关键字节作为引导信号
选项组合生成 LLM 分析选项处理代码 + 调试器反馈迭代 自动生成 fuzz driver 所需的命令行参数
FCG 对齐 函数名匹配 / 二进制相似度检测 将基础二进制的轨迹映射到目标二进制
嵌套模拟退火 每条轨迹独立状态机 + 模拟退火调度 动态分配能量,聚焦漏洞路径探索
关键字节变异 污点分析提取 PoC 关键字节 → 字典引导 绕过复用代码中的复杂分支约束

💡 **小结:**TransferFuzz-Pro 将"LLM 自动调试 + 历史轨迹迁移 + 双重引导 fuzzing"三管齐下,实现从手动验证到全自动化的跃迁。

03 实验结果

实验基于 15 个 CVE 漏洞、76 个相关二进制展开,对比 LibAM、OCTOPOCs、AFLGo、WindRanger、SelectFuzz、DAFL 等方法。

(1)RQ1:选项组合生成准确率

TransferFuzz-Pro 在 60 个漏洞上成功生成 85.0% 的理想选项组合,90 秒内完成自动生成。相比之下,仅依赖 LLM 内在知识的 LLM_o 准确率为 45.0%,仅输入选项处理代码的 LLM_p 为 50.0%。对于 objdump,LLM 甚至发现了比人工分析更多的有效选项组合。TransferFuzz(原版)每条需专家手动分析 20 分钟以上。

(2)RQ2:漏洞传播验证准确率

TransferFuzz-Pro 实现了 Precision = 1.0、Recall = 1.0,成功验证全部 38 个传播漏洞样本。LibAM 虽然 Recall = 1.0(检测到了所有复用代码),但 Precision 仅为 0.260(108 个误报)。OCTOPOCs 受限于要求源和目标二进制输入格式一致,Recall 仅为 0.395。其他定向 fuzzing 方法(AFLGo、WindRanger 等)Precision = 1.0 但 Recall 偏低(0.526~0.763)。

(3)RQ3:漏洞触发效率

TransferFuzz-Pro 是最快的方法,相比 SOTA 的 SelectFuzz 实现 2.5x 加速。几乎所有漏洞在 60 分钟内验证完成,超过一半在 2 分钟内确认。对于其他方法完全无法触发的漏洞(CVE-2016-4491、CVE-2016-4492、CVE-2016-6131),TF-Pro 仅需数秒到数分钟即可成功。资源消耗方面,TF-Pro 的 CPU 和内存使用与 AFLGo、SelectFuzz 相当,远低于 WindRanger 的持续污点分析开销。

(4)RQ5:Linux 发行版 PoC 生成

TransferFuzz-Pro 将 15 个 CVE 的影响软件从 15 个扩展至 53 个,并成功为 Debian 8/9、Ubuntu 16、CentOS 7、Fedora 24/25/26、OpenWrt 16 等多种 Linux 发行版生成了 PoC。原版 TransferFuzz 因缺乏源码无法验证这些发行版中的漏洞,TF-Pro 通过二进制插桩突破了这一限制。

💡 **小结:**TransferFuzz-Pro 在准确率、速度和适用范围上全面超越现有方法,首次实现了漏洞传播验证的全自动化。

📌 总结

TransferFuzz-Pro 的关键意义在于:将漏洞传播验证从"人工分析 + 源码依赖"推进到"LLM 自动调试 + 二进制级验证"的新阶段。它证明了一点:通过跨程序迁移历史执行信息,可以大幅降低漏洞验证的门槛和成本。

这一思路不仅适用于 C/C++ 二进制的漏洞传播验证,也可能扩展到:软件供应链安全审计、容器镜像漏洞扫描、物联网固件漏洞验证等场景。

📣 欢迎留言讨论

• 你认为 LLM 驱动的自动调试会成为未来漏洞验证的标配吗?

• 相比传统定向 fuzzing,历史轨迹迁移的方法是否更具通用性?

相关推荐
艺杯羹2 分钟前
告别大模型滥用与延迟失控:确定性优先法则与本地规则引擎实战
前端·人工智能·系统架构
智联视频超融合平台2 分钟前
机器狗进火场、无人机爬上 50 层楼:应急现场的“眼睛“正在换班
人工智能·无人机·视频监控·视频联网·应急管理
阿里云大数据AI技术5 分钟前
阿里云Flink + Fluss年度发布:Streaming Agent 与湖流一体
人工智能·flink·agent
萨小耶5 分钟前
AI 面试答题链路源码分析:Redis 幂等、题目锁与状态机如何配合
人工智能·redis·面试
计算机毕业编程指导师11 分钟前
计算机毕设推荐:基于深度学习的动物图像识别方法研究(Python+Django+PyTorch)
pytorch·python·深度学习·计算机·毕业设计·课程设计·图像识别
Java后端的Ai之路12 分钟前
【AIAgent项目-AI生成PPT-09】灵活排版
前端·vue.js·人工智能·python·powerpoint
Mininglamp_271819 分钟前
Human-AI Co-Writing With Full Accept/Reject Control on Every Edit
人工智能
X54先生(人文科技)25 分钟前
ELR-SELLM_硅基伙伴通过对话碰撞个性涌现的推理架构_v10
人工智能·深度学习·架构·零知识证明
CV爱数码25 分钟前
论文精读|RED-CNN:残差编解码网络,低剂量 CT 去噪的经典基线
网络·人工智能·算法·cnn·ct·重建·x-ray
Sailing31 分钟前
【封闭结束3】ReAct 循环:从一次 Function Call 到多步 Agent
人工智能·面试·agent