Borrowck Scarifices exposes uninitialized memory in any_as_u8_slice
Low severity
GitHub Reviewed
Published
Oct 22, 2025
to the GitHub Advisory Database
•
Updated Oct 22, 2025
Description
Published to the GitHub Advisory Database
Oct 22, 2025
Reviewed
Oct 22, 2025
Last updated
Oct 22, 2025
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.References