{"id":"GHSA-h7h7-6mx3-r89v","aliases":["RUSTSEC-2024-0435"],"url":"https://o3.security/vulnerability/GHSA-h7h7-6mx3-r89v","summary":"Fyrox has unsound usages of `Vec::from_raw_parts` ","details":"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.  \n\nIn the [issue](https://github.com/FyroxEngine/Fyrox/issues/630), we develop a PoC to show passing struct type to `transmute_vec_as_bytes` could lead to undefined behavior with `Vec::from_raw_parts`.  \n\nThe 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](https://github.com/FyroxEngine/Fyrox/blob/3f9ad6f9667047dac051b0e97d544e5b38e5ae72/fyrox-core/src/lib.rs#L351-L360) branch, but still not on the latest release (0.28.1).","published":"2025-02-14T17:31:16Z","modified":"2025-10-28T06:29:25.103174Z","cvss":null,"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"crates.io","name":"fyrox-core","fixedVersion":"0.36"}],"fix":{"url":"https://github.com/FyroxEngine/Fyrox/pull/662","label":"FyroxEngine/Fyrox#662"},"references":[{"type":"WEB","url":"https://github.com/FyroxEngine/Fyrox/issues/630"},{"type":"WEB","url":"https://github.com/FyroxEngine/Fyrox/pull/662"},{"type":"WEB","url":"https://github.com/FyroxEngine/Fyrox/commit/474e3b01a884366cdb7d704f7456ef692e992232"},{"type":"PACKAGE","url":"https://github.com/FyroxEngine/Fyrox"},{"type":"WEB","url":"https://rustsec.org/advisories/RUSTSEC-2024-0435.html"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2025-10-28T06:29:25.103174Z"}}