CyberGlossary

Application Security

Fuzz Testing

Also known as: Fuzzing

Definition

An automated testing technique that feeds a program large amounts of malformed, random or unexpected input to uncover crashes, memory corruption and security vulnerabilities.

Fuzz testing (or fuzzing) bombards a target — a function, parser, network protocol or whole application — with mutated or generated inputs while monitoring for crashes, hangs, assertion failures or sanitizer reports. The goal is to find inputs that violate safety properties: out-of-bounds access, use-after-free, infinite loops, unhandled exceptions or logic errors. Modern fuzzers like AFL++, libFuzzer, Jazzer and Atheris use coverage feedback to evolve inputs that reach new code paths, making them highly effective on parsers, decoders and cryptographic code. Fuzzing is now a core part of SSDLCs at companies like Google (OSS-Fuzz) and Microsoft, and it has uncovered many high-impact CVEs.

Examples

  • OSS-Fuzz running libFuzzer continuously against the OpenSSL parser to find memory corruption bugs.
  • Jazzer fuzzing a Java JSON parser to find DoS through deeply nested input.

Related terms