Skip to content
OpenAdvisories
Low GHSA-xcpm-76hf-c9cc RUSTSEC-2025-0107

Borrowck Scarifices exposes uninitialized memory in any_as_u8_slice

Published Oct 22, 2025 · Updated Oct 28, 2025 · Assigned by GHSA

Description

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.

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io borrowck_sacrifices < 0.2.0 0.2.0 GHSA-xcpm-76hf-c9cc
crates.io borrowck_sacrifices >= 0.0.0-0, < 0.2.0 0.2.0 RUSTSEC-2025-0107

References