Unsafe block usage requires manual audit
ID |
rust.unsafe_code.unsafe_block_usage |
Severity |
low |
Resource |
Unsafe Code |
Language |
Rust |
Description
Unsafe block detected. Unsafe code bypasses Rust’s memory safety guarantees and requires careful manual auditing. Verify that: (1) raw pointer operations are valid, (2) memory is properly allocated/deallocated, (3) data races are prevented, (4) type invariants are maintained. Consider using safe abstractions where possible.
Rationale
Unsafe block detected. Unsafe code bypasses Rust’s memory safety guarantees and requires careful manual auditing. Verify that: (1) raw pointer operations are valid, (2) memory is properly allocated/deallocated, (3) data races are prevented, (4) type invariants are maintained. Consider using safe abstractions where possible.
The following code illustrates a vulnerable pattern detected by this rule:
fn bad_unsafe_raw_pointer() {
// VULNERABLE: Unsafe block usage requires manual audit
let x = 5;
let raw = &x as *const i32;
unsafe {
println!("raw pointer value: {}", *raw);
}
}