- Reported
-
- Issued
-
- Package
-
fyrox-core
(crates.io)
- Type
-
INFO
Unsound
- Keywords
-
#uninitialized
- References
-
- Patched
-
- Affected Functions
- Version
fyrox_core::transmute_vec_as_bytes
-
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.