Fuzzing at Scale: The Untold Story of the Scheduler
Ivica Nikolic, Racchit Jain

TL;DR
This paper demonstrates that dynamic scheduling strategies significantly improve bug detection in large-scale fuzzing, matching the impact of advanced fuzzers, by intelligently allocating fuzzing time across numerous programs.
Contribution
It introduces and evaluates dynamic schedulers for large-scale fuzzing, showing they outperform naive approaches and are crucial for effective bug discovery at scale.
Findings
Dynamic schedulers find more bugs than naive ones.
Performance of schedulers can rival state-of-the-art fuzzers.
Fuzzing 5,000 programs yielded 4,908 bugs.
Abstract
How to search for bugs in 1,000 programs using a pre-existing fuzzer and a standard PC? We consider this problem and show that a well-designed strategy that determines which programs to fuzz and for how long can greatly impact the number of bugs found across the programs. In fact, the impact of employing an effective strategy is comparable to that of utilizing a state-of-the-art fuzzer. The considered problem is referred to as fuzzing at scale, and the strategy as scheduler. We show that besides a naive scheduler, that allocates equal fuzz time to all programs, we can consider dynamic schedulers that adjust time allocation based on the ongoing fuzzing progress of individual programs. Such schedulers are superior because they lead both to higher number of total found bugs and to higher number of found bugs for most programs. The performance gap between naive and dynamic schedulers can be…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsTeaching and Learning Programming · AI-based Problem Solving and Planning
