Some notes on CI Fuzzing - this fuzzing is different to normal fuzzing campaigns as these are much shorter runnings.
Always:
AFL_FAST_CAL - Enable fast calibration, this halfs the time the saturated corpus needs to be loaded.AFL_CMPLOG_ONLY_NEW - only perform cmplog on new found paths, not the initial corpus as this very likely has been done for them already.Additionally randomize the AFL++ compilation options, e.g.
AFL_LLVM_CMPLOGAFL_LLVM_LAF_ALLAlso randomize the afl-fuzz runtime options, e.g.
AFL_DISABLE_TRIMAFL_LLVM_DICT2FILE-L 0)AFL_EXPAND_HAVOC_NOW-Z)-l 2, 40% for -l 3Do not run any -M modes, just running -S modes is better for CI fuzzing. -M enables old queue handling etc. which is good for a fuzzing campaign but not good for short CI runs.
How this can look like can e.g. be seen at AFL++‘s setup in Google’s oss-fuzz and clusterfuzz.