Fuzzing SMT solvers via two-dimensional input space exploration

Peisen Yao, Heqing Huang, Wensheng Tang, Qingkai Shi, Rongxin Wu*, Charles Zhang

*Corresponding author for this work

Research output: Chapters, Conference Papers, Creative and Literary WorksRGC 32 - Refereed conference paper (with host publication)peer-review

14 Citations (Scopus)

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 languageEnglish
Title of host publicationISSTA ’21 - Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis
PublisherAssociation for Computing Machinery
Pages322-335
ISBN (Print)9781450384599
DOIs
Publication statusPublished - 2021
Externally publishedYes
Event30th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2021) - Virtual, Denmark
Duration: 11 Jul 202117 Jul 2021

Publication series

NameISSTA - Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis

Conference

Conference30th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2021)
Country/TerritoryDenmark
Period11/07/2117/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

Fingerprint

Dive into the research topics of 'Fuzzing SMT solvers via two-dimensional input space exploration'. Together they form a unique fingerprint.

Cite this