paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Algernon: A Flag-Guided Hybrid Fuzzer for Unlocking Hidden Program Paths

Algernon:一种标志引导的混合模糊测试器,用于解锁隐藏程序路径
ASE 2025 40th IEEE/ACM International Conference on Automated Software Engineering (ASE)2025匹配度 3/10 · 该论文属于程序分析与模糊测试方向,涉及预模糊测试程序分析、标志变量识别和约束求解,与静态分析有间接关联;但它不涉及 LLM/Agent 与程序分析的交叉、浮点程序分析或贝叶斯程序分析,因此与用户核心研究方向匹配度较低。引用 0 inbox
Peng Deng, Lei Zhang, Jingqi Long, Wenzheng Hong, Zhemin Yang, Yuan Zhang, Donglai Zhu, Min Yang
crossref: 2026-09-12

AI 速览

一句话:提出标志引导的混合模糊测试工具Algernon,通过识别标志变量并分解约束,高效探索隐藏路径。

模糊测试广泛用于发现软件安全问题,但某些代码路径仅在特定程序状态下可达。标志变量表示内部状态,并通过标志守卫分支影响程序行为;由于标志变量与输入间存在隐式数据依赖,现有工具难以高效探索这些分支,常以盲目或随机方式满足标志检查约束。本文提出动态标志引导的混合模糊测试方法:先通过预模糊测试程序分析识别标志变量,设计FDG表示标志变量对分支的守卫关系;再将复杂标志检查约束拆分为原子约束,遍历FDG顺序求解,定位可给标志变量赋期望值的执行路径。作者实现原型Algernon,在20个热门开源程序上评估,显示其在代码覆盖率和漏洞发现上优于QSYM、Angora、AFL++与INVSCOV,并发现30个零日漏洞,获11个CVE编号。

问题
现有模糊测试工具因标志变量与输入间的隐式数据依赖,难以高效探索由标志守卫的分支,只能盲目或随机满足标志检查约束。
方法
提出动态标志引导的混合模糊测试:预分析识别标志变量,构建FDG,将复杂标志检查约束拆为原子约束并沿FDG顺序求解,以引导执行到期望标志赋值路径。
评估
实现原型Algernon,在20个开源程序上与QSYM、Angora、AFL++、INVSCOV比较代码覆盖率和漏洞发现,发现30个零日漏洞、11个CVE。
原文摘要(Abstract)

Fuzz testing is a widely used method for finding security issues in software. However, certain code paths can only be explored under specific program states. Flag variables, which represent internal states, are crucial in influencing program behavior through flag-guarded branches. Unfortunately, existing fuzzing tools struggle to efficiently explore them due to the implicit data dependency between flag variables and the input. As a result, they commonly lack awareness of the dependency between program input and the assignments of critical flag variables, leading to a blind or random approach to satisfy flag-checking constraints, which greatly impacts the fuzzing efficiency.To address this issue, this paper proposes a dynamic flag-guided hybrid fuzzing approach, which automates the identification of flag variables and provides guidance for fuzz testing. Specifically, we first design a pre-fuzzing program analysis to recognize flag variables and a novel data structure to present how flag variables guard code branches. Then, we propose a new constraint-solving approach by separating complex flag-checking constraints into a set of atomic ones and sequentially solving them by traversing our FDG to locate execution paths that could assign the flag variables with the desired values.We implement a prototype tool, called Algernon, and evaluate it on 20 popular open-source programs. Across all tested programs, Algernon outperforms QSYM, Angora, AFL++, and INVSCOV in terms of both code coverage and vulnerability discovery, demonstrating the effectiveness of our approach. During our experiments, Algernon successfully found 30 zero-day vulnerabilities with 11 CVE IDs assigned.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot9476,
  title = {Algernon: A Flag-Guided Hybrid Fuzzer for Unlocking Hidden Program Paths},
  author = {Peng Deng and Lei Zhang and Jingqi Long and Wenzheng Hong and Zhemin Yang and Yuan Zhang and Donglai Zhu and Min Yang},
  booktitle = {ASE},
  year = {2025},
  doi = {10.1109/ase63991.2025.00253}
}