GitHub Advisoryadvisory · crates.io

GHSA-wp34-mqw5-jj85 Use after free in nano_arena

CRITICAL Published 2021-08-25 Modified 2023-06-13 Official page ↗
Aliases
CVE-2021-28032
Ecosystem
crates.io
Packages
nano_arena
Severity
Critical
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-416
Reviewed
2021-08-19

Affected packages

• crates.io nano_arena: < 0.5.2 → fixed in 0.5.2

Description

Affected versions of this crate assumed that Borrow 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 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.

Related

Alias · CVE (1)

  • CVE-2021-28032 An issue was discovered in the nano_arena crate before 0.5.2 for Rust. vulnerability

Weakness · CWE (1)

References