high8.1
CVE-2020-36461
Data races in noise_search
Impact
Affected versions of the `noise_search` 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).
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| rust | noise_search | <= 0.7.0 | none recorded |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Noise Search Project | Noise Search | through 2020-12-10 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://raw.githubusercontent.com/rustsec/advisory-db/main/crates/noise_search/RUSTSEC-2020-0141.md
- https://rustsec.org/advisories/RUSTSEC-2020-0141.html
- https://github.com/advisories/GHSA-wxjf-9f4g-3v44
- https://nvd.nist.gov/vuln/detail/CVE-2020-36461
- https://github.com/pipedown/noise/issues/72