Share your thoughts, 1 month free Claude Pro on usSee more
WorkDL logo mark

LLAMAFUZZ: Large Language Model Enhanced Greybox Fuzzing

About

Greybox fuzzing has achieved success in revealing bugs and vulnerabilities in programs. However, randomized mutation strategies have limited the fuzzer's performance on structured data. Specialized fuzzers can handle complex structured data, but require additional efforts in grammar and suffer from low throughput. In this paper, we explore the potential of utilizing the Large Language Model to enhance greybox fuzzing for structured data. We utilize the pre-trained knowledge of LLM about data conversion and format to generate new valid inputs. We further fine-tuned it with paired mutation seeds to learn structured format and mutation strategies effectively. Our LLM-based fuzzer, LLAMAFUZZ, integrates the power of LLM to understand and mutate structured data to fuzzing. We conduct experiments on the standard bug-based benchmark Magma and a wide variety of real-world programs. LLAMAFUZZ outperforms our top competitor by 41 bugs on average. We also identified 47 unique bugs across all trials. Moreover, LLAMAFUZZ demonstrated consistent performance on both bug trigger and bug reached. Compared to AFL++, LLAMAFUZZ achieved 27.19% more branches in real-world program sets on average. We also demonstrate a case study to explain how LLMs enhance the fuzzing process in terms of code coverage.

Hongxiang Zhang, Yuyang Rong, Yifeng He, Hao Chen• 2024

Related benchmarks

TaskDatasetResultRank
Fuzzingbinutils fuzz_objcopy
Average Branch Coverage22
2
Fuzzingbinutils fuzz_readelf
Average Branch Coverage6.55e+3
2
Fuzzingbinutils fuzz_strings
Average Branch Coverage6.44e+3
2
Fuzzingbloaty fuzz_target
Average Branch Coverage5.97e+3
2
Fuzzinggrok grk_decompress_fuzzer
Average Branch Coverage3.72e+3
2
Fuzzingkamailio fuzz_parse_msg
Average Branch Coverage3.74e+3
2
Fuzzingkamailio fuzz_uri
Average Branch Coverage1.39e+3
2
Fuzzinglibavc avc_dec_fuzzer
Average Branch Coverage9.87e+3
2
Fuzzinglibavc mvc_dec_fuzzer
Average Branch Coverage6.46e+3
2
Fuzzinglibhevc hevc_dec_fuzzer
Avg Branch Coverage15
2
Showing 10 of 15 rows

Other info

Follow for update