Detecting Critical Bugs in SMT Solvers Using Blackbox Mutational Fuzzing

04/13/2020
by   Muhammad Numair Mansur, et al.
0

Formal methods use SMT solvers extensively for deciding formula satisfiability, for instance, in software verification, systematic test generation, and program synthesis. However, due to their complex implementations, solvers may contain critical bugs that lead to unsound results. Given the wide applicability of solvers in software reliability, relying on such unsound results may have detrimental consequences. In this paper, we present STORM, a novel blackbox mutational fuzzing technique for detecting critical bugs in SMT solvers. We run our fuzzer on seven mature solvers and find 29 previously unknown critical bugs. STORM is already being used in testing new features of popular solvers before deployment.

READ FULL TEXT
research
06/07/2023

HornFuzz: Fuzzing CHC solvers

Many advanced program analysis and verification methods are based on sol...
research
04/19/2020

On the Unusual Effectiveness of Type-aware Mutations for Testing SMT Solvers

We propose type-aware operator mutation, a simple, but unusually effecti...
research
09/03/2021

On the proof complexity of MCSAT

Satisfiability Modulo Theories (SMT) and SAT solvers are critical compon...
research
05/23/2019

Set Constraints, Pattern Match Analysis, and SMT

Set constraints provide a highly general way to formulate program analys...
research
04/15/2018

SMT Solving for Vesicle Traffic Systems in Cells

In biology, there are several questions that translate to combinatorial ...
research
06/02/2021

Controlled Update of Software Components using Concurrent Exection of Patched and Unpatched Versions

Software patching is a common method of removing vulnerabilities in soft...
research
11/02/2017

Formal Analysis of Hybrid Systems Using Feature Indented Assertions

Model based design is a recommended step in the design of embedded contr...

Please sign up or login with your details

Forgot password? Click here to reset