{"id":"RUSTSEC-2021-0032","summary":"Deserializing an array can drop uninitialized memory on panic","details":"The `read_bytes_default_le` function for `[T; n]` arrays, used to deserialize\narrays of `T` from bytes created a `[T; n]` array with `std::mem::uninitialized`\nand then called `T`'s deserialization method.\n\nIf `T`'s deserialization method panicked, the uninitialized memory could drop\ninvalid objects.\n\nThis flaw was corrected in `a535678` by removing the unsafe block and using\na `.map` function to deserialize each element of the array instead.","aliases":["CVE-2021-28033","GHSA-8fgg-5v78-6g76"],"modified":"2023-11-08T04:05:27.850049Z","published":"2021-03-01T12:00:00Z","database_specific":{"license":"CC0-1.0"},"references":[{"type":"PACKAGE","url":"https://crates.io/crates/byte_struct"},{"type":"ADVISORY","url":"https://rustsec.org/advisories/RUSTSEC-2021-0032.html"},{"type":"REPORT","url":"https://github.com/wwylele/byte-struct-rs/issues/1"}],"affected":[{"package":{"name":"byte_struct","ecosystem":"crates.io","purl":"pkg:cargo/byte_struct"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.6.1"}]}],"ecosystem_specific":{"affected_functions":null,"affects":{"arch":[],"functions":[],"os":[]}},"database_specific":{"categories":["memory-corruption"],"informational":null,"cvss":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2021-0032.json"}}],"schema_version":"1.7.3","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}