RustGo: Fairly Directed Greybox Fuzzing for Enforcing Rust Memory Safety
Authors/Creators
Description
RustGo Artifacts
This Zenodo record contains the artifacts for RustGo: Fairly Directed Greybox Fuzzing for Enforcing Rust Memory Safety, evaluated as part of the ACM CCS 2026 Artifact Evaluation.
Abstract
Rust is a popular systems programming language that provides strong memory safety with low performance overhead. While Rust enforces memory safety through strict policies such as ownership, memory bugs can still occur in unsafe-related Rust code, where these policies are not fully enforced. Although unsafe Rust code accounts for only a small portion of an entire program (e.g., 10%), existing approaches fuzz the entire program—including safe Rust code whose memory safety is already enforced by the Rust compiler—resulting in inefficient use of fuzzing resources.
In this paper, we propose RustGo, the first Rust-directed greybox fuzzer that effectively and fairly focuses on code regions that may contain memory bugs. RustGo automatically identifies potential memory-bug targets and accurately prunes paths irrelevant to each target using Rust-specific static analysis. For each identified target, RustGo maintains an independent fuzzing state and applies dynamic pruning to achieve balanced and focused fuzzing. We evaluate RustGo on various real-world Rust applications. On average, RustGo prunes 78.49% of irrelevant paths, reaches targets ×2.09 to ×5.08 faster than existing fuzzers, and identifies 13 previously unknown bugs, including six assigned RUSTSEC IDs and one assigned CVE ID.