A quick glance into fuzzing in CMake projects
Before further ado, let's learn a bit about fuzzing itself. Fuzzing, or fuzz testing, is a testing method that feeds random, unexpected data to a software system to see how a system behaves with certain input. The fuzzer reports the unexpected behaviors that it encounters. This allows us to discover critical bugs that are otherwise missed by other testing strategies and code reviews. Finding whether input causes a security issue or failure has proven to be hard. Surprisingly, fuzzing is pretty effective against this. It is known that the vast majority of critical security bugs such as remote code execution or privilege escalation can be discovered with ease when fuzzing is employed correctly. Therefore, it is important to understand the fuzzing technique to harness the power that comes with it.
Fuzzing can be done either manually by hand or automatically with the help of software. The second approach is more favorable, since it...