RUSTSEC-2021-0003
Dashboard / Vulnerabilities / RUSTSEC-2021-0003
RUSTSEC-2021-0003
Summary: Buffer overflow in SmallVec::insert_many
Details: A bug in the `SmallVec::insert_many` method caused it to allocate a buffer that was smaller than needed. It then wrote past the end of the buffer, causing a buffer overflow and memory corruption on the heap. This bug was only triggered if the iterator passed to `insert_many` yielded more items than the lower bound returned from its `size_hint` method. The flaw was corrected in smallvec 0.6.14 and 1.6.1, by ensuring that additional space is always reserved for each item inserted. The fix also simplified the implementation of `insert_many` to use less unsafe code, so it is easier to verify its correctness. Thank you to Yechan Bae ([@Qwaz](https://github.com/Qwaz)) and the Rust group at Georgia Tech’s SSLab for finding and reporting this bug.
References: https://crates.io/crates/smallvec, https://rustsec.org/advisories/RUSTSEC-2021-0003.html, https://github.com/servo/rust-smallvec/issues/252
Affected packages
Package
Name: smallvec
Purl: pkg:cargo/smallvec
Affected ranges
Type: SEMVER
Events:
