HistoryEditJSON (OSV)

RUSTSEC-2024-0435

Unsound usages of Vec::from_raw_parts

Reported
Issued
Package
fyrox-core (crates.io)
Type
INFO Unsound
Keywords
#uninitialized
References
Patched
  • >=0.36
Affected Functions
Version
fyrox_core::transmute_vec_as_bytes
  • >=0.28.1, <=0.36

Description

The library provides a public safe API transmute_vec_as_bytes, which incorrectly assumes that any generic type T could have stable layout, causing to uninitialized memory exposure if the users pass any types with padding bytes as T and cast it to u8 pointer.

In the issue, we develop a PoC to show passing struct type to transmute_vec_as_bytes could lead to undefined behavior with Vec::from_raw_parts.

The developers provide a patch by changing trait of Copy to Pod, which can make sure T should be plain data. This was patched in the latest version of master branch, but still not on the latest release (0.28.1).

Advisory available under CC0-1.0 license.