A reproducible fuzzing research environment, rebuilt from a broken one, with statistics that tell you when to stop fuzzing.
Research infrastructure work from the RISC Lab at UIC.
A fuzzing experiment platform built on Google's FuzzBench, a Docker workflow, and a custom LLVM compiler build. The interesting part is not running the fuzzers, it is making every experiment reproducible and adding Bayesian estimators that predict residual risk, so you have a principled answer to "have we fuzzed this enough?" instead of a gut feel.
- Rebuilt the environment from scratch: Google FuzzBench + Docker + a custom LLVM toolchain, so experiments run the same way every time.
- Implemented two Bayesian residual-risk estimators from the research literature to model how much undiscovered vulnerability likely remains.
- Optimized the build: layer caching, a modularized LLVM dependency build, and a restructured workflow for faster iteration.
- Setup time cut ~60%, all 5+ benchmarks fully reproducible.
- Docker rebuild time cut ~70% (from over 40 minutes to under 15) across 5+ benchmark containers.
- Stopping-condition accuracy improved 30%+ across benchmark configurations.
- Standardized to handle 100+ GB of generated testing data.
Google FuzzBench · Docker · LLVM · Python · Bash · AWS