Advisories for Cargo/Borrowck_sacrifices package

2025

Borrowck Scarifices exposes uninitialized memory in any_as_u8_slice

The safe function any_as_u8_slice can create byte slices that reference uninitialized memory when used with types containing padding bytes. The function uses slice::from_raw_parts to create a &[u8] covering the entire size of a type, including padding bytes. According to Rust's documentation, from_raw_parts requires all bytes to be properly initialized, but padding bytes in structs are not guaranteed to be initialized. This violates the safety contract and causes undefined behavior.