ISLa is a novel specification language and fuzzer generating system inputs from grammars and constraints. It lets you specify input constraints like “a variable has to be defined before it is used”; “the ‘file name’ block must be 100 bytes long,” or “the number of columns in all CSV rows must be identical.” We show that a few ISLa constraints suffice to produce 100% semantically valid inputs while still maintaining input diversity. ISLa can also parse and precisely validate; inputs against semantic constraints.
On top, our ISLearn prototype mines constraints from existing examples based on a catalog of common patterns. The resulting constraints can then again be used for fuzzing and parsing.