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,历史轨迹迁移的方法是否更具通用性?

相关推荐
shujudang1 小时前
从数据闭环到 Agent 协同:企业营销自动化如何演进为智能运营?
大数据·运维·人工智能·数据分析·自动化
吉安特尔雅1 小时前
2026行业实测|主流AI获客系统功能拆解与选型指南(含剪流全矩阵深度分析)
人工智能·剪流geo·剪流·ai获客哪家靠谱
动恰客流统计1 小时前
ReID边缘计算视觉客流统计:无网户外场景的数字化落地路径
大数据·人工智能
戴西软件1 小时前
国内有哪些数据轻量化格式转换软件?
数据库·算法·安全·信息可视化·自动化·rpa
FL16238631291 小时前
仙人掌品种类型检测数据集VOC+YOLO格式1991张10类别
人工智能·yolo·机器学习
Sunlly1 小时前
OpenClaw 的 Elevated 到底给了 Agent 什么权限
人工智能
小白说大模型1 小时前
Codex 实战:用 AI 写运维脚本
大数据·运维·网络·人工智能·机器学习·prompt
用户73499134716531 小时前
我把思考外包给了AI,三个月后我成了自己项目的文盲
人工智能
Rocky Ding*1 小时前
【三年面试五年模拟】2026-08-18_哔哩哔哩_AI应用岗Agent开发一面面经(含完整答案)
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·ai agent