Abstract
Rust is a modern systems programming language that prioritizes safety and performance. Its key innovation, the ownership and borrowing system, ensures memory safety by preventing common errors such as dangling pointers, data races, and use-after-free bugs. Rust's type system further enhances reliability by catching logic errors at compile time. The Rust compiler enforces memory safety through its ownership and borrowing system, performing a set of strict checks to guarantee the security and safety of the program. However, specific scenarios necessitate the use of Unsafe Rust, which bypasses some of the safety checks. This is particularly relevant for performance optimizations, interfacing with other languages, and implementing complex data structures. In this paper, we have conducted a literature review on the use of Unsafe Rust, exploring why and how programmers are utilizing it. The result indicates that while unsafe Rust is widely used, it is often encapsulated to minimize risks. However, there are still many vulnerabilities in Rust that are caused by using unsafe Rust. So, this paper also suggests some future research directions to help with the safer use of unsafe Rust.