Lucene search

K
osvGoogleOSV:RUSTSEC-2021-0031
HistoryJan 31, 2021 - 12:00 p.m.

split_at allows obtaining multiple mutable references to the same data

2021-01-3112:00:00
Google
osv.dev
9

0.004 Low

EPSS

Percentile

74.9%

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.

CPENameOperatorVersion
nano_arenalt0.5.2

0.004 Low

EPSS

Percentile

74.9%

Related for OSV:RUSTSEC-2021-0031