Reachable Coverage: Estimating Saturation in Fuzzing
Danushka Liyanage, Marcel Böhme, Chakkrit Tantithamthavorn, Stephan Lipp
Abstract
Reachable coverage is the number of code elements in the search space of a fuzzer (i.e., an automatic software testing tool). A fuzzer cannot find bugs in code that is unreachable. Hence, reachable coverage quantifies fuzzer effectiveness. Using static program analysis, we can compute an upper bound on the number of reachable coverage elements, e.g., by extracting the call graph. However, we cannot decide whether a coverage element is reachable in general. If we could precisely determine reachable coverage efficiently, we would have solved the software verification problem. Unfortunately, we cannot approach a given degree of accuracy for the static approximation, either. In this paper, we advocate a statistical perspective on the approximation of the number of elements in the fuzzer's search space, where accuracy does improve as a function of the analysis runtime. In applied statistics, corresponding estimators have been developed and well established for more than a quarter century. These estimators hold an exciting promise to finally tackle the long-standing challenge of counting reachability. In this paper, we explore the utility of these estimators in the context of fuzzing. Estimates of reachable coverage can be used to measure (a) the amount of untested code, (b) the effectiveness of the testing technique, and (c) the completeness of the ongoing fuzzing campaign (w.r.t. the asymptotic max. achievable coverage). We make all data and our analysis publicly available.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 58568874-8ace-4429-a328-afe366ebfe78Cited by top-tier papers12
- SoK: Prudent Evaluation Practices for FuzzingMoritz Schloegel, Nils Bars, Nico Schiller, Lukas Bernhard et al.S&P 2024 · 69 citations
- Statistical Reachability AnalysisSeongmin Lee, Marcel BöhmeFSE 2023 · 12 citations
- Constant Optimization Driven Database System TestingChi Zhang, Manuel RiggerSIGMOD 2025 · 8 citations
- Extrapolating Coverage Rate in Greybox FuzzingDanushka Liyanage, Seongmin Lee, Chakkrit Tantithamthavorn, Marcel BöhmeICSE 2024 · 6 citations
- Engineering a Formally Verified Automated Bug FinderArthur Correnson, Dominic SteinhöfelFSE 2023 · 6 citations
Builds on7
- Evaluating Fuzz TestingGeorge Klees, Andrew Ruef, Benji Cooper, Shiyi Wei et al.CCS 2018 · 753 citations
- Boosting fuzzer efficiency: an information theoretic perspectiveMarcel Böhme, Valentin J. M. Manès, Sang Kil ChaFSE 2020 · 115 citations
- On the Reliability of Coverage-Based Fuzzer BenchmarkingMarcel Böhme, László Szekeres, Jonathan MetzmanICSE 2022 · 91 citations
- Fuzzing: on the exponential cost of vulnerability discoveryMarcel Böhme, Brandon FalkFSE 2020 · 66 citations
- Revisiting the Relationship Between Fault Detection, Test Adequacy Criteria, and Test Set SizeYiqun T. Chen, Rahul Gopinath, Anita Tadakamalla, Michael D. Ernst et al.ASE 2020 · 48 citations
Related papers
- Green Fuzzing: A Saturation-Based Stopping Criterion using Vulnerability PredictionStephan Lipp, Daniel Elsner, Severin Kacianka, Alexander Pretschner et al.ISSTA 2023 · 6 citations
- Demystifying the Dependency Challenge in Kernel FuzzingYu Hao, Hang Zhang, Guoren Li, Xingyun Du et al.ICSE 2022 · 15 citations
- StorFuzz: Using Data Diversity to Overcome Fuzzing PlateausLeon Weiß, Tobias Holl, Kevin BorgolteICSE 2026 · 1 citation
- Data Coverage for Guided FuzzingMingzhe Wang, Jie Liang, Chijin Zhou, Zhiyong Wu et al.USENIX Security 2024 · 6 citations
- SDFuzz: Target States Driven Directed FuzzingPenghui Li, Wei Meng, Chao ZhangUSENIX Security 2024 · 16 citations
