mirror of
https://github.com/OMGeeky/advisory-db.git
synced 2026-02-13 21:18:11 +01:00
795 B
795 B
[advisory]
id = "RUSTSEC-2020-0126"
package = "signal-simple"
date = "2020-11-15"
url = "https://github.com/kitsuneninetails/signal-rust/issues/2"
categories = ["memory-corruption", "thread-safety"]
[versions]
patched = []
SyncChannel can move 'T: !Send' to other threads
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.