ChatAFL

Protocol-guided greybox fuzzer that uses an LLM to infer message grammars and mutate state-machine inputs under coverage feedback.

Read the paper

The loop

  1. Proposes

    An LLM extracts protocol request grammars and synthesizes structure-aware seed sequences and state-transition mutations.

  2. Judged by

    The greybox fuzzer (AFLNet engine) executes the target network server, measuring edge coverage, state transitions, and sanitizer crashes.

  3. Steers

    When coverage stalls in a protocol state, the fuzzer queries the LLM with the observed server responses to generate inputs that unlock new states.

Headline result

Covered 47.6% more state transitions and 29.6% more code branches than AFLNet across nine network protocol implementations, discovering 9 previously unknown vulnerabilities.

What this does not prove

Targets text-based application protocols (RTSP, FTP, SMTP, SIP); binary protocols require separate serialization adapters.

How it generalizes the harness

The evolutionary greybox fuzzer runs the main coverage loop and calls the LLM only to infer protocol grammars and break coverage plateaus.

Classification

Classification of ChatAFL
What it proposesFuzz target
Generative modelLLM protocol grammar and seed mutator
Algorithmic authorityCoverage-guided stateful greybox fuzzer and address sanitizers
FeedbackCode coverage
What gets updatedPopulation of candidates
When it runsIn continuous operation
ValidityEmpirical (measured)
EvidenceCode released
LineageOriginal system