Rust advisories / fyrox-core
Unsound LowRUSTSEC-2024-0435 · fyrox-core
RUSTSEC-2024-0435: Unsound usages of `Vec::from_raw_parts`
Short answerfyrox-core has an API that can cause undefined behaviour from safe code: Unsound usages of `Vec::from_raw_parts`. Fixed in 0.36.0.
| Crate | fyrox-core |
|---|---|
| Type | Unsound |
| Affected versions | Before 0.36.0. |
| Fixed in | 0.36.0 |
| Severity | Low (GitHub rating) |
| Published | 2024-12-19 |
| Last changed | 2025-10-28 |
| Also known as | GHSA-h7h7-6mx3-r89v |
| Affected functions | fyrox_core::transmute_vec_as_bytes |
What to do
- See which version you have:
cargo tree -i fyrox-core(it also shows which of your dependencies pulls it in). - Update within your version requirement:
cargo update -p fyrox-core. If the fix is a newer major or minor than your requirement allows, raise it in Cargo.toml (for examplefyrox-core = "0.36.0") or update the dependency that pulls it in. - Check again with
cargo audit, or paste your Cargo.lock into our Cargo.toml checker.
Details from the advisory
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
- Package: crates.io/crates/fyrox-core
- Advisory: rustsec.org/advisories/RUSTSEC-2024-0435.html
- Report: github.com/FyroxEngine/Fyrox/issues/630
- Web: github.com/FyroxEngine/Fyrox/pull/662
From the RustSec Advisory Database (CC0-1.0) via the OSV export, downloaded Oct 24, 2026. Severity score computed from the published CVSS vector.
Up next
Are you affected?Check your whole dependency treePaste Cargo.lock: every advisory, for your exact versions.Read it next →Also worth your time
Did this answer your question?