Rust advisories / signal-simple
Vulnerability HighRUSTSEC-2020-0126 · signal-simple
RUSTSEC-2020-0126: SyncChannel<T> can move 'T: !Send' to other threads
Short answerA security vulnerability in the signal-simple crate: SyncChannel<T> can move 'T: !Send' to other threads. High severity (CVSS 8.1). No fixed version: replace the crate or remove the affected code path.
| Crate | signal-simple |
|---|---|
| Type | Vulnerability (memory-corruption, thread-safety) |
| Affected versions | Every version. |
| Fixed in | none |
| Severity | High, CVSS 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Published | 2020-11-15 |
| Last changed | 2023-11-08 |
| Also known as | CVE-2020-36446, GHSA-36cg-4jff-5863, GHSA-8892-84wf-cg8f |
What to do
- Find who pulls it in:
cargo tree -i signal-simple. - Avoid the affected API, or replace the crate.
Details from the advisory
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.
References
- Package: crates.io/crates/signal-simple
- Advisory: rustsec.org/advisories/RUSTSEC-2020-0126.html
- Report: github.com/kitsuneninetails/signal-rust/issues/2
From the RustSec Advisory Database (CC0-1.0) via the OSV export, downloaded Oct 24, 2026. Severity score computed from the published CVSS vector.
Up next
Are you affected?Check your whole dependency treePaste Cargo.lock: every advisory, for your exact versions.Read it next →Also worth your time
Did this answer your question?