Fuzzing
Fuzzing is automated software testing that repeatedly generates or mutates inputs to find bugs. A fuzzer looks for failures such as crashes, hangs, or memory errors, which developers then investigate.
Also known as: fuzz testing
A fuzzing harness connects the testing engine to the code under test, such as a file parser. Coverage-guided fuzzers keep inputs that reach new parts of the program and mutate them to explore further. Runtime checks called sanitizers can expose memory errors or undefined behavior that would otherwise go unnoticed. LLVM’s libFuzzer documentation explains how these pieces work together.
A finding is a starting point for investigation. Developers need to reproduce it, identify the cause, assess its security impact, and test a fix. Some bugs affect reliability without providing an attack path. In the episode below, Dan Lorenc uses fuzzing as an example of why faster bug discovery still needs a workable remediation process. That distinction matters when assessing what AI-assisted vulnerability discovery actually delivers.