Files
advisory-db/crates/atomic-option/RUSTSEC-2020-0113.md
2021-01-20 19:47:43 +00:00

663 B

[advisory]
id = "RUSTSEC-2020-0113"
package = "atomic-option"
date = "2020-10-31"
url = "https://github.com/reem/rust-atomic-option/issues/4"
categories = ["memory-corruption"]

[versions]
patched = []

AtomicOption should have Send + Sync bound on its type argument.

In the affected versions of this crate, AtomicOption<T> unconditionally implements Sync.

This allows programmers to move non-Sync types across thread boundaries (e.g. Rc<T>, Arc<Cell<T>>), which can lead to data races and undefined behavior. It is also possible to send non-Send types like std::sync::MutexGuard to other threads, which can lead to undefined behavior.