LLM-based Fuzzing Harness Generation

Generating and refining fuzzing harnesses to explore different code regions.

Status: Exploratory

I am interested in using LLMs to generate fuzzing drivers, also known as harnesses, for libraries and APIs. A useful harness should be able to explore various code regions, andmust do more than compile: it needs to initialize the target correctly, turn fuzzed bytes into meaningful inputs, and exercise relevant behavior.

Goal

Explore an LLM-based workflow for generating and refining harnesses that enable a fuzzer to reach and explore different code regions, combining source code and API context with evidence from compilation and execution.

Directions to Explore

  • Infer API usage patterns and initialization requirements from source code, documentation, and examples.
  • Generate harnesses that translate fuzzed input into valid API calls.
  • Explore different code regions by varying API entry points, call sequences, and input handling in generated harnesses.
  • Evaluate harness quality through coverage, target behavior, and reproducible bug discovery.

This direction builds on my interest in AI for software engineering and feedback-driven test generation, including my work on Refining LLM-based Directed Test Input Generation via Runtime Value Feedback.