PILOT: Command-line Interface Fuzzing via Path-Guided, Iterative Large Language Model Prompting
About
Command-line interface (CLI) fuzzing tests programs by mutating both command-line options and input file contents, thus enabling discovery of vulnerabilities that only manifest under specific option-input combinations. Prior works of CLI fuzzing face the challenges of generating semantics-rich option strings and input files, which cannot reach deeply embedded target functions. This often leads to a misdetection of such a deep vulnerability using existing CLI fuzzing techniques. In this paper, we design a novel Path-guided, Iterative LLM-Orchestrated Testing framework, called PILOT, to fuzz CLI applications. The key insight is to provide potential call paths to target functions as context to LLM so that it can better generate CLI option strings and input files. Then, PILOT iteratively repeats the process, and provides reached functions as additional context so that target functions are reached. Our evaluation on real-world CLI applications demonstrates that PILOT achieves higher coverage than state-of-the-art fuzzing approaches and discovers 51 zero-day vulnerabilities. We responsibly disclosed all the vulnerabilities to their developers and so far 41 have been confirmed by their developers with 33 being fixed and three assigned CVE identifiers.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Edge Coverage | avconv POWER program | Edge Coverage3.48e+4 | 7 | |
| Edge Coverage | bison POWER program | Edge Coverage7.26e+3 | 7 | |
| Edge Coverage | cflow POWER program | Edge Coverage Count2.23e+3 | 7 | |
| Edge Coverage | cjpeg POWER program | Edge Coverage6.07e+3 | 7 | |
| Edge Coverage | dwarfdump POWER program | Edge Coverage1.04e+4 | 7 | |
| Edge Coverage | ffmpeg POWER program | Edge Coverage3.77e+4 | 7 | |
| Edge Coverage | gm POWER program | Edge Coverage1.06e+4 | 7 | |
| Edge Coverage | gs POWER program | Edge Coverage2.03e+4 | 7 | |
| Edge Coverage | mpg123 POWER program | Edge Coverage4.11e+3 | 7 | |
| Edge Coverage | objdump POWER program | Edge Coverage1.32e+4 | 7 |