Cyber Risks · Trail of Bits Blog

Everything You Ever Wanted To Know About Test-Case Reduction, But Didn’t Know to Ask

Summary: Trail of Bits explains test-case reduction, the process of turning a large failing input into a smaller one that triggers the same behavior, and walks through DeepState's reducer shrinking a file-system corruption test from 16 steps to a reset at the fourth block write during creation of the file "aaaaa". The post notes that AFL and libFuzzer include limited built-in reduction, that the technique is also called minimization, shrinking, or delta-debugging, and that DeepState's reducer uses interleaved passes rather than Zeller's delta-debugging binary search.

Bottom line: The post states that the simpler the input, the easier it is to construct an exploit from a fuzzer-generated crash or to conclude a bug cannot be exploited, which puts reduction directly in the path between a crash and a working exploit.

Read the original at Trail of Bits Blog ↗