Critical, CVSS 9.8crates.ioPublished
Use after free in nano_arena
CVE-2021-28032 · GHSA-wp34-mqw5-jj85
- Affected
- crates.io nano_arena < 0.5.2
- Fixed in
- 0.5.2· Vendor fix available
- Issue
- 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.
Recommended action: Upgrade to 0.5.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.