{"id":"GHSA-pqpw-89w5-82v5","aliases":["RUSTSEC-2023-0087"],"status":"published","title":"`simd-json-derive` vulnerable to `MaybeUninit` misuse","description":"An invalid use of `MaybeUninit::uninit().assume_init()` in `simd-json-derive`'s derive macro can cause undefined behavior. The original code used `MaybeUninit` to avoid initialisation of the struct and then set the fields using `ptr::write`. The undefined behavior triggered by this misuse of `MaybeUninit` can lead to invlaid memory access and panics in binaries compiled in release mode (aka simd-json-derive prior to version 0.12 has UB and optimizes into some nonsense)\n\nThe version `0.12.0` removes this section of code, avoiding the use of MaybeUninit alltogether.","severity":{"version":"4.0","score":6.6,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U","level":"medium","from":"ghsa"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"published":"2023-10-14T12:00:00Z","modified":"2025-10-28T06:29:25Z","fixes":[{"ecosystem":"crates.io","package":"simd-json-derive","fixed_in":["0.12.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"simd-json-derive","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.12.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"simd-json-derive","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.12.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"simd-json-derive","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.12.0"}]}]}],"references":[{"url":"https://github.com/simd-lite/simd-json-derive/issues/67","tags":["web","report"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2023-0087.html","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-pqpw-89w5-82v5"},{"url":"https://github.com/simd-lite/simd-json-derive","tags":["package"]},{"url":"https://crates.io/crates/simd-json-derive","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-pqpw-89w5-82v5","title":"`simd-json-derive` vulnerable to `MaybeUninit` misuse","description":"An invalid use of `MaybeUninit::uninit().assume_init()` in `simd-json-derive`'s derive macro can cause undefined behavior. The original code used `MaybeUninit` to avoid initialisation of the struct and then set the fields using `ptr::write`. The undefined behavior triggered by this misuse of `MaybeUninit` can lead to invlaid memory access and panics in binaries compiled in release mode (aka simd-json-derive prior to version 0.12 has UB and optimizes into some nonsense)\n\nThe version `0.12.0` removes this section of code, avoiding the use of MaybeUninit alltogether.\n","status":"published","published":"2024-11-12T20:53:54Z","modified":"2024-11-12T20:53:55Z","cvss":[{"version":"4.0","score":6.6,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U","level":"medium"}],"updated_at":"2026-11-02T14:38:17.357217Z"}],"osv":[{"id":"GHSA-pqpw-89w5-82v5","title":"`simd-json-derive` vulnerable to `MaybeUninit` misuse","description":"An invalid use of `MaybeUninit::uninit().assume_init()` in `simd-json-derive`'s derive macro can cause undefined behavior. The original code used `MaybeUninit` to avoid initialisation of the struct and then set the fields using `ptr::write`. The undefined behavior triggered by this misuse of `MaybeUninit` can lead to invlaid memory access and panics in binaries compiled in release mode (aka simd-json-derive prior to version 0.12 has UB and optimizes into some nonsense)\n\nThe version `0.12.0` removes this section of code, avoiding the use of MaybeUninit alltogether.\n","status":"published","published":"2024-11-12T20:53:54Z","modified":"2025-10-28T06:29:25.755823Z","cvss":[{"version":"4.0","score":6.6,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U","level":"medium"}],"updated_at":"2026-11-02T15:46:53.700556Z"},{"id":"RUSTSEC-2023-0087","title":"`MaybeUninit` misuse in `simd-json-derive`","description":"An invalid use of `MaybeUninit::uninit().assume_init()` in `simd-json-derive`'s derive macro can cause undefined behavior. The original code used `MaybeUninit` to avoid initialisation of the struct and then set the fields using `ptr::write`. The undefined behavior triggered by this misuse of `MaybeUninit` can lead to invlaid memory access and panics in binaries compiled in release mode (aka simd-json-derive prior to version 0.12 has UB and optimizes into some nonsense)\n\nThe `0.12.0` removes this section of code, avoiding the use of MaybeUninit alltogether.","status":"published","published":"2023-10-14T12:00:00Z","modified":"2025-10-28T06:29:25.755823Z","updated_at":"2026-11-02T15:53:39.971022Z"}]}}
