GitHub Advisoryadvisory · crates.io
GHSA-h7h7-6mx3-r89v Fyrox has unsound usages of `Vec::from_raw_parts`
LOW
Official page ↗
- Ecosystem
- crates.io
- Packages
- fyrox-core
- Severity
- Low
- Reviewed
- 2025-02-14
Affected packages
• crates.io fyrox-core: >= 0.28.1, < 0.36 → fixed in 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).