high8.1
CVE-2020-36446
Data races in signal-simple
Impact
Affected versions of this crate unconditionally implement Send/Sync for SyncChannel<T>. SyncChannel<T> doesn't provide access to &T but merely serves as a channel that consumes and returns owned T. Users can create UB in safe Rust by sending T: !Send to other threads with SyncChannel::send/recv APIs. Using T = Arc<Cell<_> allows to create data races (which can lead to memory corruption), and using T = MutexGuard<T> allows to unlock a mutex from a thread that didn't lock the mutex.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| rust | signal-simple | <= 0.1.1 | none recorded |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Signal-Simple Project | Signal-Simple | through 2020-11-15 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://raw.githubusercontent.com/rustsec/advisory-db/main/crates/signal-simple/RUSTSEC-2020-0126.md
- https://rustsec.org/advisories/RUSTSEC-2020-0126.html
- https://github.com/advisories/GHSA-36cg-4jff-5863
- https://nvd.nist.gov/vuln/detail/CVE-2020-36446
- https://github.com/kitsuneninetails/signal-rust/issues/2