Affected versions of this crate called mem::uninitialized() to create values of a user-supplied type T. This is unsound e.g. if T is a reference type (which must be non-null and thus may not remain uninitialized). The flaw was corrected by avoiding the use of mem::uninitialized(), using MaybeUninit instead.
References:- https://nvd.nist.gov/vuln/detail/CVE-2018-25023
- https://raw.githubusercontent.com/rustsec/advisory-db/main/crates/smallvec/RUSTSEC-2018-0018.md
- https://rustsec.org/advisories/RUSTSEC-2018-0018.html
- https://github.com/servo/rust-smallvec/issues/126
- https://github.com/servo/rust-smallvec/pull/162
- https://github.com/servo/rust-smallvec/commit/e64afc8c473d43e375ab42bd33db2d0d4ac4e41b
- https://github.com/advisories/GHSA-55m5-whcv-c49c