Borrowck Scarifices exposes uninitialized memory in any_as_u8_slice
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Fixed
No CVSS vector from any source. Fix status from GitHub.
Summary
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.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | borrowck_sacrifices (crates.io) | before 0.2.0 | 0.2.0 | Patch available | GHSA-xcpm-76hf-c9cc |
- borrowck_sacrifices (crates.io) Vendor— Affected before 0.2.0 Fixed in 0.2.0 Patch available GHSA-xcpm-76hf-c9cc
Remediation
- Fix · GHSA-xcpm-76hf-c9cc borrowck_sacrifices (crates.io) Fixed in 0.2.0 Advisory →
Timeline
- 2026-10-03 Threatist record created from GHSA-xcpm-76hf-c9cc
References
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences