Fuzzing automatically generates or mutates inputs, including malformed inputs, to expose software failures and vulnerabilities. For cryptographic code, it is especially important when parsing untrusted data in memory-unsafe languages. section 10.6 section 10.3
Use fuzzing alongside maximal test coverage rather than as a substitute for defensive implementation. It is intended to find parsing errors, memory-safety problems, integer overflows, and related failures before attackers do. section 10.6 section 10.9
Heartbleed
Fuzzing contributed to the independent discovery of Heartbleed. A malicious heartbeat could claim a very long payload while supplying little data, causing a vulnerable server to read beyond its buffer and disclose neighboring memory. section 10.6
Apply fuzzing where input handling can fail:
- Exercise parsers extensively, especially when decryption requires validating user-supplied padding. section 10.3
- Combine fuzzing with strict validation and constant-time implementation; testing cannot repair an unsafe parser by itself. section 10.9 section 10.3






