Fuzzing is automated testing that feeds random or crafted input to discover crashes and vulnerabilities.
Types
- Blackbox — no knowledge of internals.
- Greybox — coverage-guided (AFL++, libFuzzer).
- Whitebox — symbolic execution (KLEE, angr).
Finds: buffer overflows, null dereferences, use-after-free.