C-to-Rust Fallacy: Automatic Refactoring != Memory Security
Study finds most automatic C-to-Rust translations fail to compile or still carry memory bugs.
Researchers evaluated C2Rust-analyze, CROWN, C2SaferRust, and FLOURINE on 116 NIST Juliet C programs that contain memory-security bugs, generating 464 Rust programs. They report that 342 failed to compile, 177 inherited the original memory bugs, and 77 new Rust bugs were introduced. The paper argues current automatic refactoring meets the tools' own safety definitions but does not deliver broader memory security.
- 116 Juliet C programs yielded 464 Rust translations.
- 342 programs failed to compile and 177 kept original memory bugs.
- The tools introduced 77 new Rust bugs.
- Authors say defined safety is not broader memory security.
- Organizations
- NIST
From the original article
1 min read at arxiv.orgRust has emerged as the leading system programming language, offering strong memory and type safety guarantees without compromising performance. This positions it as a compelling alternative to traditional languages like C and C++, which are susceptible to memory security bugs.
By Hung-Mao Chen · arxiv.org
A short excerpt; the article and its images belong to the publisher. Summary, key facts and assessment above are AI-written from the article and can be wrong.