#fuzzing

Wiki 8

  • appsec.guide β€” Fuzzing Chapter (Trail of Bits Testing Handbook) Trail of Bits' Testing Handbook fuzzing chapter β€” terminology, the mutation-based evolutionary algorithm, fuzzer components, and a taxonomy of bug classes; entry point to language-specific subsections
  • Coverage-Guided Fuzzing The dominant modern fuzzing algorithm β€” evolutionary loop over a corpus of test cases, fitness measured by code coverage, mutated offspring kept when they reach new coverage
  • Differential Fuzzing Run the same input through two implementations of the same spec and treat disagreement as a bug; finds spec-conformance issues neither implementation would catch alone
  • gosentry β€” Trail of Bits' Go Fuzzing Fork Kevin Valerio (Trail of Bits) introduces gosentry, a Go toolchain fork that wraps the standard testing.F API around a LibAFL+Nautilus engine for grammar, struct, race, leak, and overflow detection
  • Grammar-Based Fuzzing Generate fuzzing inputs from a context-free grammar instead of random bytes, so inputs survive early parsing stages and exercise downstream logic
  • LibAFL Rust framework for building coverage-guided fuzzers β€” composable stages, mutators, observers, and feedbacks instead of a fixed loop; descendant of AFL++ research
  • Nautilus Grammar-based coverage-guided fuzzer; uses tree mutations on context-free grammars to produce structurally valid inputs that survive front-end parsing
  • Structure-Aware Fuzzing Fuzz a function by generating valid in-language values (structs, slices, pointers) instead of raw bytes; the fuzzer mutates bytes underneath and the runtime handles encode/decode

Toolbox 1

  • gosentry Fork of the Go toolchain that runs standard testing.F fuzz harnesses through a LibAFL+Nautilus engine β€” struct-aware, grammar-aware, race/leak/overflow detection