Map

LibAFL

Wiki entityrustfuzzingsecurity โ†ณ show in map Markdown
title
LibAFL
type
entity
summary
Rust framework for building coverage-guided fuzzers โ€” composable stages, mutators, observers, and feedbacks instead of a fixed loop; descendant of AFL++ research
tags
rust, fuzzing, security
created
2026-05-12
updated
2026-05-12

LibAFL is a Rust library (and crate ecosystem) that ships fuzzer parts instead of a fuzzer. Stages, mutators, observers, feedbacks, schedulers, and corpora are all traits; you compose them into the fuzzer your target needs. The project came out of the AFL++ team and the AFLNet/CmpLog research lines, aiming to make it cheap to build domain-specific fuzzers that aren't AFL-shaped.

The architectural bet is that real-world fuzzing has too many target shapes (kernel, hypervisor, network, structured-input, grammar, differential, multi-target) for one binary's command-line flags to cover, so the right abstraction is library, not tool.

Used by:

  • gosentry as the engine underneath a forked Go toolchain
  • AFL++ as its experimental rewrite path
  • Various academic and industry research fuzzers

Relation to grammar / structure-aware fuzzing

LibAFL doesn't ship a grammar engine itself; tools built on it (gosentry, others) typically pull in Nautilus for grammar mode and the structure-aware-fuzzing decoder pattern for typed inputs.