Matryoshka: fuzzing deeply nested branches

05/29/2019
by   Peng Chen, et al.
0

Greybox fuzzing has made impressive progress in recent years, evolving from heuristics-based random mutation to approaches for solving individual path constraints. However, they have difficulty solving path constraints that involve deeply nested conditional statements, which are common in image and video decoders, network packet analyzers, and checksum tools. We propose an approach for addressing this problem. First, we identify all the control flow-dependent conditional statements of the target conditional statement. Next, we select the data flow-dependent conditional statements. Finally, we use three strategies to find an input that satisfies all conditional statements simultaneously. We implemented this approach in a tool called Matryoshka and compared its effectiveness on 13 open source programs against other state-of-the-art fuzzers. Matryoshka found significantly more unique crashes than AFL, QSYM, and Angora. We manually classified those crashes into 41 unique new bugs, and obtained 12 CVEs. Our evaluation also uncovered the key technique contributing to Matryoshka's impressive performance: it collects only the nesting constraints that may cause the target conditional statements unreachable, which greatly simplifies the constraints that it has to solve.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/30/2022

On translating conditional statements into mathematical logic

In this paper, we highlight a profound difference between conditional st...
research
03/04/2018

Angora: Efficient Fuzzing by Principled Search

Fuzzing is a popular technique for finding software bugs. However, the p...
research
07/05/2023

Fuzzing with Quantitative and Adaptive Hot-Bytes Identification

Fuzzing has emerged as a powerful technique for finding security bugs in...
research
04/25/2014

Une approche CSP pour l'aide à la localisation d'erreurs

We introduce in this paper a new CP-based approach to support errors loc...
research
11/25/2014

Some Reflections on the Set-based and the Conditional-based Interpretations of Statements in Syllogistic Reasoning

Two interpretations about syllogistic statements are described in this p...
research
11/01/2021

Individual codewords

Algorithmic information theory translates statements about classes of ob...
research
09/11/2023

Enabling Runtime Verification of Causal Discovery Algorithms with Automated Conditional Independence Reasoning (Extended Version)

Causal discovery is a powerful technique for identifying causal relation...

Please sign up or login with your details

Forgot password? Click here to reset