GitHub Advisoryadvisory · crates.io

GHSA-h7h7-6mx3-r89v Fyrox has unsound usages of `Vec::from_raw_parts`

LOW Published 2025-02-14 Modified 2025-02-14 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).

References