GitHub Advisoryadvisory · crates.io
GHSA-wp34-mqw5-jj85 Use after free in nano_arena
CRITICAL
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)
- CWE-416 Use After Free weakness
References
- https://nvd.nist.gov/vuln/detail/CVE-2021-28032 advisory
- https://github.com/bennetthardwick/nano-arena/issues/1 web
- https://github.com/bennetthardwick/nano-arena/commit/6b83f9d0708337a9f8b709c1624a8587021ceba2 web
- https://github.com/bennetthardwick/nano-arena package
- https://rustsec.org/advisories/RUSTSEC-2021-0031.html web