Files
advisory-db/crates/noise_search/RUSTSEC-2020-0141.md
Alexander Kjäll f494f83f8e add missing cve info to advisories (#1077)
looks like RUSTSEC-2020-0036 might be a special case, someone got a cve for that the crate is unmaintained
2021-10-14 21:53:11 +02:00

963 B

[advisory]
id = "RUSTSEC-2020-0141"
package = "noise_search"
date = "2020-12-10"
url = "https://github.com/pipedown/noise/issues/72"
categories = ["memory-corruption", "thread-safety"]
aliases = ["CVE-2020-36461"]

[versions]
patched = []

MvccRwLock allows data races & aliasing violations

Affected versions of this crate unconditionally implement Send/Sync for MvccRwLock. This can lead to data races when types that are either !Send or !Sync (e.g. Rc<T>, Arc<Cell<_>>) are contained inside MvccRwLock and sent across thread boundaries. The data races can potentially lead to memory corruption (as demonstrated in the PoC from the original report issue).

Also, safe APIs of MvccRwLock allow aliasing violations by allowing &T and LockResult<MutexGuard<Box<T>>> to co-exist in conflicting lifetime regions. The APIs of MvccRwLock should either be marked as unsafe or MbccRwLock should be changed to private or pub(crate).