Lion Cipher Lab

Seed a fuzzer with model-generated inputs and measure the coverage gain against random and hand-written seeds (deterministic STUB model)

Why it matters

Google now uses large language models to write fuzz targets and inputs for open-source projects (OSS-Fuzz-gen), and research systems such as Fuzz4All and Project Zero's Big Sleep use them to reach code that blind mutation never touches. The pitch is simple: a model has read millions of log lines and file formats, so it can hand a fuzzer inputs that already get past the format checks. This lab measures that pitch instead of believing it. On a toy CEF security-log parser with five planted bugs, random bytes covered 1 arc and random text 13, because neither ever wrote the four bytes CEF: that…

What you'll learn

Steps in this lab

  1. The words first: fuzzing, seeds, coverage, magic gates, and the fact that the model here is a STUB
  2. Open a terminal and make a scratch folder
  3. Write the target: a toy CEF/syslog parser with five planted bugs
  4. Write the seed sets, including the STUB model that stands in for an LLM
  5. Write the fuzzer: mutation plus arc coverage from sys.settrace
  6. Measure: seven seed sets, five repeats, 3000 mutated inputs each
  7. Read the result: the gain is real, and most of it is getting past the gate
  8. The honest negatives: what the model-shaped seeds did NOT do
  9. Does random catch up if you just wait? Run it ten times longer
  10. The judgment: when to ask a model for seeds, when not to, and how a pro does it
  11. Optional appendix: replace the STUB with a free local model through Ollama

Open the full interactive lab →