RUSTSEC-2020-0072
Dashboard / Vulnerabilities / RUSTSEC-2020-0072
RUSTSEC-2020-0072
Summary: GenericMutexGuard allows data races of non-Sync types across threads
Details: `GenericMutexGuard<T>` was given the `Sync` auto trait as long as `T` is `Send` due to its contained members. However, since the guard is supposed to represent an **acquired lock** and allows concurrent access to the underlying data from different threads, it should only be `Sync` when the underlying data is. This is a soundness issue and allows data races, potentially leading to crashes and segfaults from safe Rust code. The flaw was corrected by adding a `T: Send + Sync` bound for `GenericMutexGuard`'s `Sync` trait. This bug is [similar to one](https://github.com/rust-lang/rust/issues/41622) in `std::sync::Mutex`.
References: https://crates.io/crates/futures-intrusive, https://rustsec.org/advisories/RUSTSEC-2020-0072.html, https://github.com/Matthias247/futures-intrusive/issues/53
Affected packages
Package
Name: futures-intrusive
Purl: pkg:cargo/futures-intrusive
Affected ranges
Type: SEMVER
Events:
