RUSTSEC-2021-0031

    Dashboard / Vulnerabilities / RUSTSEC-2021-0031

    RUSTSEC-2021-0031

    Published: 31 Jan 2021Last Modified: 8 Nov 2023

    Summary: split_at allows obtaining multiple mutable references to the same data

    Details: Affected versions of this crate assumed that `Borrow<Idx>` was guaranteed to return the same value on `.borrow()`. The borrowed index value was used to retrieve a mutable reference to a value. If the `Borrow<Idx>` implementation returned a different index, the split arena would allow retrieving the index as a mutable reference creating two mutable references to the same element. This violates Rust's aliasing rules and allows for memory safety issues such as writing out of bounds and use-after-frees. The flaw was corrected in commit `6b83f9d` by storing the `.borrow()` value in a temporary variable.

    Affected packages

    Package

    Name: nano_arena

    Purl: pkg:cargo/nano_arena

    Affected ranges

    Type: SEMVER

    Events:

    Introduced- 0.0.0-0
    Fixed -0.5.2

    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-0031 | CVE-DB