English

Prompt Fuzzing for Fuzz Driver Generation

Cryptography and Security 2024-05-30 v2 Software Engineering

Abstract

Crafting high-quality fuzz drivers not only is time-consuming but also requires a deep understanding of the library. However, the state-of-the-art automatic fuzz driver generation techniques fall short of expectations. While fuzz drivers derived from consumer code can reach deep states, they have limited coverage. Conversely, interpretative fuzzing can explore most API calls but requires numerous attempts within a large search space. We propose PromptFuzz, a coverage-guided fuzzer for prompt fuzzing that iteratively generates fuzz drivers to explore undiscovered library code. To explore API usage in fuzz drivers during prompt fuzzing, we propose several key techniques: instructive program generation, erroneous program validation, coverage-guided prompt mutation, and constrained fuzzer scheduling. We implemented PromptFuzz and evaluated it on 14 real-world libraries. Compared with OSS-Fuzz and Hopper (the state-of-the-art fuzz driver generation tool), fuzz drivers generated by PromptFuzz achieved 1.61 and 1.63 times higher branch coverage than those by OSS-Fuzz and Hopper, respectively. Moreover, the fuzz drivers generated by PromptFuzz detected 33 genuine, new bugs out of a total of 49 crashes, out of which 30 bugs have been confirmed by their respective communities.

Keywords

Cite

@article{arxiv.2312.17677,
  title  = {Prompt Fuzzing for Fuzz Driver Generation},
  author = {Yunlong Lyu and Yuxuan Xie and Peng Chen and Hao Chen},
  journal= {arXiv preprint arXiv:2312.17677},
  year   = {2024}
}

Comments

To appear in the ACM CCS 2024

R2 v1 2026-06-28T14:04:41.499Z