Search papers, labs, and topics across Lattice.
This paper details the largest verification campaign for the Rust standard library, leveraging a crowdsourced approach to integrate various verification tools into a continuous integration system. The campaign aims to enhance the safety of Rust's standard library, which relies on unsafe code, by providing machine-checked proofs for critical undefined behaviors such as out-of-bounds access and null pointer dereferences. Key findings highlight the effectiveness of this approach while also identifying ongoing challenges that need to be addressed by the formal-methods community.
The largest-ever verification campaign for Rust's standard library reveals significant vulnerabilities in unsafe code, underscoring the need for robust static verification methods.
Rust's type system prevents many classes of memory errors, yet its standard library relies heavily on unsafe code whose correctness is validated through testing, including dynamic checks under Miri, but lacks static verification. We present what is, to the best of our knowledge, the largest verification campaign reported for a software library: an open, crowdsourced effort that integrates complementary verification tools into the continuous integration of a verification repository forked from the Rust standard library. We analyze the campaign's effectiveness, discuss the practical value of machine-checked proofs for a subset of undefined behaviors (e.g., out-of-bounds access, null and dangling pointer dereferences, and use of uninitialized memory), and frame the remaining obstacles as open challenges for the formal-methods community.