RULF: Rust Library Fuzzing via API Dependency Graph Traversal
Jianfeng Jiang, Hui Xu, Yangfan Zhou

TL;DR
This paper introduces RULF, an automated method for generating fuzz targets for Rust libraries by traversing API dependency graphs, significantly improving coverage and bug detection without manual target design.
Contribution
It presents a novel automated fuzz target generation approach for Rust libraries using API dependency graph traversal, enhancing efficiency and coverage over manual methods.
Findings
Generated 7 to 118 fuzz targets per library
Achieved API coverage up to 0.92
Discovered 30 previously unknown bugs
Abstract
Robustness is a key concern for Rust library development because Rust promises no risks of undefined behaviors if developers use safe APIs only. Fuzzing is a practical approach for examining the robustness of programs. However, existing fuzzing tools are not directly applicable to library APIs due to the absence of fuzz targets. It mainly relies on human efforts to design fuzz targets case by case which is labor-intensive. To address this problem, this paper proposes a novel automated fuzz target generation approach for fuzzing Rust libraries via API dependency graph traversal. We identify several essential requirements for library fuzzing, including validity and effectiveness of fuzz targets, high API coverage, and efficiency. To meet these requirements, we first employ breadth-first search with pruning to find API sequences under a length threshold, then we backward search longer…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Software Reliability and Analysis Research
