Parser-Directed Fuzzing

Mathis, Björn and Gopinath, Rahul and Mera, Michaël and Kampmann, Alexander and Höschele, Matthias and Zeller, Andreas
(2019) Parser-Directed Fuzzing.
In: 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2019), Sat 22 - Wed 26 June 2019, Phoenix, Arizona, United States.
Conference: PLDI ACM-SIGPLAN Conference on Programming Language Design and Implementation
(In Press)


Download (715kB) | Preview


To be effective, software test generation needs to well cover the space of possible inputs. Traditional fuzzing generates large numbers of random inputs, which however are unlikely to contain keywords and other specific inputs of non-trivial input languages. Constraint-based test generation solves conditions of paths leading to uncovered code, but fails on programs with complex input conditions because of path explosion. In this paper, we present a test generation technique specifically directed at input parsers. We systematically produce inputs for the parser and track comparisons made; after every rejection, we satisfy the comparisons leading to rejection. This approach effectively covers the input space: Evaluated on five subjects, from CSV files to JavaScript, our pFuzzer prototype covers more tokens than both random-based and constraint-based approaches, while requiring no symbolic analysis and far fewer tests than random fuzzers.


Actions (login required)

View Item View Item