RUSTSEC-2020-0112
Dashboard / Vulnerabilities / RUSTSEC-2020-0112
RUSTSEC-2020-0112
Summary: ButtplugFutureStateShared allows data race to (!Send|!Sync) objects
Details: `ButtplugFutureStateShared<T>` implements `Send` & `Sync` regardless of `T`. If `T: !Send` for `ButtplugFutureStateShared<T>`, it is possible to move non-Send types across thread boundaries (e.g. `T`=`Rc<T>`) and lead to undefined behavior. If `T: !Sync` for `ButtplugFutureStateShared<T>`, it is possible to cause data race to `T` (e.g. `T`=`Arc<Cell<_>>`) and lead to undefined behavior. The flaw was corrected in version 1.0.4 by removing manual implementations of `Send`/`Sync` for `ButtplugFutureStateShared<T>` to let rustc generate auto trait implementations with correct trait bounds on `T`.
References: https://crates.io/crates/buttplug, https://rustsec.org/advisories/RUSTSEC-2020-0112.html, https://github.com/buttplugio/buttplug-rs/issues/225
Affected packages
Package
Name: buttplug
Purl: pkg:cargo/buttplug
Affected ranges
Type: SEMVER
Events:
