Rust and Go directed fuzzing with LibAFL-DiFuzz
Timofey Mezhuev, Darya Parygina, Daniil Kuts

TL;DR
This paper introduces a novel directed greybox fuzzing approach for Rust and Go, leveraging LibAFL-DiFuzz, which outperforms existing fuzzers in efficiency and accuracy through advanced preprocessing and instrumentation techniques.
Contribution
It extends directed fuzzing techniques to Rust and Go, providing a new, effective method with custom compiler modifications and graph-based targeting, outperforming existing tools.
Findings
Rust-LibAFL-DiFuzz achieves the best TTE results.
Go-LibAFL-DiFuzz outperforms competitors in most cases.
The approach demonstrates superior efficiency and accuracy.
Abstract
In modern SSDLC, program analysis and automated testing are essential for minimizing vulnerabilities before software release, with fuzzing being a fast and widely used dynamic testing method. However, traditional coverage-guided fuzzing may be less effective in specific tasks like verifying static analysis reports or reproducing crashes, while directed fuzzing, focusing on targeted program locations using proximity metrics, proves to be more effective. Some of the earliest directed fuzzers are, for example, AFLGo and BEACON, which use different proximity metric approaches. Although most automated testing tools focus on C/C++ code, the growing popularity of Rust and Go causes the need for precise and efficient testing solutions for these languages. This work expands the applicability of directed fuzzing beyond traditional analysis of C/C++ software. We present a novel approach to…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Engineering Research · Radiation Effects in Electronics
