{"id":"CVE-2021-25900","aliases":["RUSTSEC-2021-0003","GHSA-43w2-9j62-hq99"],"title":"Buffer overflow in SmallVec::insert_many","summary":"Buffer overflow in SmallVec::insert_many","severity":"critical","cvss":9.8,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","vendor":"smallvec","product":"smallvec","ecosystem":"rust","affected":["smallvec >= 1.0.0, < 1.6.1"],"patched":["smallvec 1.6.1"],"published":"2021-01-08","updated":"2026-07-17","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/RUSTSEC-2021-0003","references":[{"url":"https://crates.io/crates/smallvec"},{"url":"https://rustsec.org/advisories/RUSTSEC-2021-0003.html"},{"url":"https://github.com/servo/rust-smallvec/issues/252"}],"tags":["osv","rust"],"epss":0.01666,"epssPercentile":0.75715,"ingestedAt":"2026-07-17T19:00:51.779Z","slug":"CVE-2021-25900","body":"## Overview\n\nA 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.\n\nThis bug was only triggered if the iterator passed to `insert_many` yielded more items than the lower bound returned from its `size_hint` method.\n \nThe 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.\n\nThank you to Yechan Bae ([@Qwaz](https://github.com/Qwaz)) and the Rust group at Georgia Tech’s SSLab for finding and reporting this bug.\n\n## Affected packages\n\n- `smallvec >= 1.0.0, < 1.6.1`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `smallvec 1.6.1`","depth":"midnight","depthScore":54,"depthScoreParts":{"impact":53.9,"likelihood":0.3,"exploitation":0,"ransomware":0},"changes":[]}