RUSTSEC-2018-0003

    Dashboard / Vulnerabilities / RUSTSEC-2018-0003

    RUSTSEC-2018-0003

    Published: 19 Jul 2018Last Modified: 17 Jul 2026

    Summary: Possible double free during unwinding in SmallVec::insert_many

    Details: If an iterator passed to `SmallVec::insert_many` panicked in `Iterator::next`, destructors were run during unwinding while the vector was in an inconsistent state, possibly causing a double free (a destructor running on two copies of the same value). This is fixed in smallvec 0.6.3 by ensuring that the vector's length is not updated to include moved items until they have been removed from their original positions. Items may now be leaked if `Iterator::next` panics, but they will not be dropped more than once. Thank you to [@Vurich](https://github.com/Vurich) for reporting this bug.

    Affected packages

    Package

    Name: smallvec

    Purl: pkg:cargo/smallvec

    Affected ranges

    Type: SEMVER

    Events:

    Introduced- 0.3.2
    Fixed -0.3.4

    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