MUTATO: Enhancing Fuzz Drivers with Adaptive API Option Mutation
Shuangxiang Kan, Xiao Cheng, Yuekang Li
Abstract
—Fuzz testing is a cornerstone technique for uncovering vulnerabilities and improving the reliability of software systems. Recent studies reveal that the primary bottleneck in modern coverage-guided fuzzing lies not within the fuzzers themselves, but in the construction of fuzz drivers—particularly their limited flexibility in exploring option parameters within library APIs. Existing approaches predominantly focus on mutating input data, often neglecting configuration options that fundamentally influence API behavior and may conceal critical vulnerabilities. To address this gap, we present M UTATO , a new multi-dimensional fuzz driver enhancement approach that systematically and adaptively mutates both input data and option parameters using a coverage-guided, epsilon-greedy strategy. Unlike prior work that requires intrusive modifications to fuzzers or targets only program-level options, M UTATO operates at the driver level, ensuring fuzzer-agnostic applicability and seamless integration with both manual and automatically generated drivers. We further introduce an option parameter fuzzing language (OPFL) to guide the enhancement of drivers. Extensive experiments on 10 widely used C/C++ libraries demonstrate that M UTATO -enhanced drivers achieve, on average, 14% and 13% higher code coverage compared to original AFL++ and LibFuzzer drivers, respectively, and uncover 12 previously unknown vulnerabilities, including 3 CVEs. Notably, we identified 4 vulnerabilities within 5 hours in APIs that OSS-Fuzz had failed to detect despite more than 18,060 hours of fuzzing effort.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 5e5c6b94-9d41-4090-af4d-666e6440296aBuilds on17
- Evaluating Fuzz TestingGeorge Klees, Andrew Ruef, Benji Cooper, Shiyi Wei et al.CCS 2018 · 753 citations
- APICraft: Fuzz Driver Generation for Closed-source SDK LibrariesCen Zhang, Xingwei Lin, Yuekang Li, Yinxing Xue et al.USENIX Security 2021 · 64 citations
- GraphFuzz: Library API Fuzzing with Lifetime-aware Dataflow GraphsHarrison Green, Thanassis AvgerinosICSE 2022 · 38 citations
- Hopper: Interpretative Fuzzing for LibrariesPeng Chen, Yuxuan Xie, Yunlong Lyu, Yuxiao Wang et al.CCS 2023 · 23 citations
- Prompt Fuzzing for Fuzz Driver GenerationYunlong Lyu, Yuxuan Xie, Peng Chen, Hao ChenCCS 2024 · 21 citations
Related papers
- MOCK: Optimizing Kernel Fuzzing Mutation with Context-aware DependencyJiacheng Xu, Xuhong Zhang, Shouling Ji, Yuan Tian et al.NDSS 2024
- FuzzGen: Automatic Fuzzer GenerationKyriakos K. Ispoglou, Daniel Austin, Vishwath Mohan, Mathias PayerUSENIX Security 2020
- An Empirical Examination of Fuzzer Mutator PerformanceJames Kukucka, Luís Pina, Paul Ammann, Jonathan BellISSTA 2024 · 4 citations
- No Harness, No Problem: Oracle-guided Harnessing for Auto-generating C API Fuzzing HarnessesGabriel Sherman, Stefan NagyICSE 2025 · 1 citation
- StateFuzz: System Call-Based State-Aware Linux Driver FuzzingBodong Zhao, Zheming Li, Shisong Qin, Zheyu Ma et al.USENIX Security 2022
