Abstract
Satisfiability Modulo Theories (SMT) solvers serve as the core engine of many techniques, such as symbolic execution. Therefore, ensuring the robustness and correctness of SMT solvers is critical. While fuzzing is an efficient and effective method for validating the quality of SMT solvers, we observe that prior fuzzing work only focused on generating various first-order formulas as the inputs but neglected the algorithmic configuration space of an SMT solver, which leads to under-reporting many deeply-hidden bugs. In this paper, we present Falcon, a fuzzing technique that explores both the formula space and the configuration space. Combining the two spaces significantly enlarges the search space and makes it challenging to detect bugs efficiently. We solve this problem by utilizing the correlations between the two spaces to reduce the search space, and introducing an adaptive mutation strategy to boost the search efficiency. During six months of extensive testing, Falcon finds 518 confirmed bugs in CVC4 and Z3, two state-of-the-art SMT solvers, 469 of which have already been fixed. Compared to two state-of-the-art fuzzers, Falcon detects 38 and 44 more bugs and improves the coverage by a large margin in 24 hours of testing. © 2021 Copyright held by the owner/author(s). Publication rights licensed to ACM.
Original language | English |
---|---|
Title of host publication | ISSTA ’21 - Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis |
Publisher | Association for Computing Machinery |
Pages | 322-335 |
ISBN (Print) | 9781450384599 |
DOIs | |
Publication status | Published - 2021 |
Externally published | Yes |
Event | 30th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2021) - Virtual, Denmark Duration: 11 Jul 2021 → 17 Jul 2021 |
Publication series
Name | ISSTA - Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis |
---|
Conference
Conference | 30th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2021) |
---|---|
Country/Territory | Denmark |
Period | 11/07/21 → 17/07/21 |
Funding
We thank the anonymous reviewers for their insightful comments. We also appreciate the developers of CVC4 and Z3 for discussing and addressing our reported bugs. Rongxin Wu is supported by the Leading-edge Technology Program of Jiangsu Natural Science Foundation (BK20202001) and NSFC61902329. Other authors are supported by the RGC16206517 and ITS/440/18FP grants from the Hong Kong Research Grant Council, and the donations from Microsoft and Huawei. Rongxin Wu is the corresponding author.
Research Keywords
- Fuzz testing
- SMT solvers