RUSTSEC-2021-0003

    Dashboard / Vulnerabilities / RUSTSEC-2021-0003

    RUSTSEC-2021-0003

    Published: 8 Jan 2021Last Modified: 17 Jul 2026

    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.

    Affected packages

    Package

    Name: smallvec

    Purl: pkg:cargo/smallvec

    Affected ranges

    Type: SEMVER

    Events:

    Introduced- 0.6.3
    Fixed -0.6.14

    Affected versions

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High
    RUSTSEC-2021-0003 | CVE-DB