Combining BMC and Fuzzing Techniques for Finding Software Vulnerabilities in Concurrent Programs
Fatimah K. Aljaafari, Rafael Menezes, Edoardo Manino, Fedor Shmarov,, Mustafa A. Mustafa, Lucas C. Cordeiro

TL;DR
This paper introduces EBF, a novel ensemble technique combining Bounded Model Checking and Gray-Box Fuzzing, including a new concurrency-aware fuzzer, to improve vulnerability detection in concurrent programs.
Contribution
The paper presents EBF, integrating BMC and a new open-source concurrency-aware GBF, enhancing vulnerability detection in concurrent software beyond existing methods.
Findings
EBF finds 14.9% more verification witnesses than pure BMC.
OpenGBF detects 24.2% of vulnerabilities, outperforming non-concurrency-aware fuzzers.
EBF successfully detects real-world vulnerabilities, including data races in open-source software.
Abstract
Finding software vulnerabilities in concurrent programs is a challenging task due to the size of the state-space exploration, as the number of interleavings grows exponentially with the number of program threads and statements. We propose and evaluate EBF (Ensembles of Bounded Model Checking with Fuzzing) -- a technique that combines Bounded Model Checking (BMC) and Gray-Box Fuzzing (GBF) to find software vulnerabilities in concurrent programs. Since there are no publicly-available GBF tools for concurrent code, we first propose OpenGBF -- a new open-source concurrency-aware gray-box fuzzer that explores different thread schedules by instrumenting the code under test with random delays. Then, we build an ensemble of a BMC tool and OpenGBF in the following way. On the one hand, when the BMC tool in the ensemble returns a counterexample, we use it as a seed for OpenGBF, thus increasing…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Reliability and Analysis Research · Software Testing and Debugging Techniques · Software Engineering Research
