paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Enhancing Coverage-Guided Fuzzing via Phantom Program

通过 Phantom 程序增强覆盖率引导的模糊测试
FSE Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering2023匹配度 2/10 · 论文研究覆盖率引导的模糊测试与动态程序依赖缓解,属于软件测试/动态分析方向,但不涉及用户核心关注的静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析。虽然其 benchmark 与工业漏洞发现有一定工程价值,但与研究画像的关键交叉点基本无关。引用 11 inbox
Mingyuan Wu, Kunqiu Chen, Qi Luo, Jiahong Xiang, Ji Qi, Junjie Chen, Heming Cui, Yuqun Zhang
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出 MirageFuzz,利用 phantom 程序与双路模糊测试缓解程序依赖,提升种子探索能力。

覆盖率引导的模糊测试中,种子常因严格的程序依赖而只能探索有限程序状态,且需反复访问已覆盖状态,导致种子的探索能力未被充分利用。本文提出 MirageFuzz:先为原程序构造一个“phantom”程序,在保持条件语句原语义的前提下降低其程序依赖;随后对原程序与 phantom 程序进行双路模糊测试,并利用基于污点的变异机制,将 phantom 测试得到的条件取值更新回原种子对应条件语句,从而生成新种子。作者在18个项目构成的基准上,与7个开源模糊器比较,平均性能提升13.42%至77.96%,并发现29个未知缺陷,其中4个被确认、3个已修复。

问题
覆盖率引导的模糊测试中,受严格程序依赖限制,许多种子只能探索有限程序状态,且重复访问已覆盖状态,难以充分发挥其探索能力。
方法
提出 MirageFuzz,构造保持条件语义但减少依赖的 phantom 程序,并对原程序与 phantom 程序进行双路模糊测试,再用基于污点的变异将 phantom 得到的条件值回写以生成新种子。
评估
在18个项目基准上与7个开源模糊器对比,平均性能提升13.42%–77.96%,并发现29个未知缺陷,其中4个确认、3个修复。
原文摘要(Abstract)

For coverage-guided fuzzers, many of their adopted seeds are usually underused by exploring limited program states since essentially all their executions have to abide by rigorous program dependencies while only limited seeds are capable of accessing dependencies. Moreover, even when iteratively executing such limited seeds, the fuzzers have to repeatedly access the covered program states before uncovering new states. Such facts indicate that exploration power on program states of seeds has not been sufficiently leveraged by the existing coverage-guided fuzzing strategies. To tackle these issues, we propose a coverage-guided fuzzer, namely MirageFuzz, to mitigate the program dependencies when executing seeds for enhancing their exploration power on program states. Specifically, MirageFuzz first creates a “phantom” program of the target program by reducing its program dependencies corresponding to conditional statements while retaining their original semantics. Accordingly, MirageFuzz performs dual fuzzing, i.e., the source fuzzing to fuzz the original program and the phantom fuzzing to fuzz the phantom program simultaneously. Then, MirageFuzz applies the taint-based mutation mechanism to generate a new seed by updating the target conditional statement of a given seed from the source fuzzing with the corresponding condition value derived by the phantom fuzzing. To evaluate the effectiveness of MirageFuzz, we build a benchmark suite with 18 projects commonly adopted by recent fuzzing papers, and select seven open-source fuzzers as baselines for performance comparison with MirageFuzz. The experiment results suggest that MirageFuzz outperforms our baseline fuzzers from 13.42% to 77.96% averagely. Furthermore, MirageFuzz exposes 29 previously unknown bugs where 4 of them have been confirmed and 3 have been fixed by the corresponding developers.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{WuCLXQCCZ23,
  title = {Enhancing Coverage-Guided Fuzzing via Phantom Program},
  author = {Mingyuan Wu and Kunqiu Chen and Qi Luo and Jiahong Xiang and Ji Qi and Junjie Chen and Heming Cui and Yuqun Zhang},
  booktitle = {FSE},
  year = {2023},
  doi = {10.1145/3611643.3616294}
}