{"id":"RUSTSEC-2020-0126","summary":"SyncChannel\u003cT\u003e can move 'T: !Send' to other threads","details":"Affected versions of this crate unconditionally implement Send/Sync for `SyncChannel\u003cT\u003e`.\n`SyncChannel\u003cT\u003e` doesn't provide access to `&T` but merely serves as a channel that consumes and returns owned `T`.\n\nUsers can create UB in safe Rust by sending `T: !Send` to other threads with `SyncChannel::send/recv` APIs. Using `T = Arc\u003cCell\u003c_\u003e` allows to create data races (which can lead to memory corruption), and using `T = MutexGuard\u003cT\u003e` allows to unlock a mutex from a thread that didn't lock the mutex.","aliases":["CVE-2020-36446","GHSA-36cg-4jff-5863","GHSA-8892-84wf-cg8f"],"modified":"2023-11-08T04:03:45.337562Z","published":"2020-11-15T12:00:00Z","database_specific":{"license":"CC0-1.0"},"references":[{"type":"PACKAGE","url":"https://crates.io/crates/signal-simple"},{"type":"ADVISORY","url":"https://rustsec.org/advisories/RUSTSEC-2020-0126.html"},{"type":"REPORT","url":"https://github.com/kitsuneninetails/signal-rust/issues/2"}],"affected":[{"package":{"name":"signal-simple","ecosystem":"crates.io","purl":"pkg:cargo/signal-simple"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"}]}],"ecosystem_specific":{"affected_functions":null,"affects":{"functions":[],"arch":[],"os":[]}},"database_specific":{"informational":null,"source":"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2020-0126.json","cvss":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","categories":["memory-corruption","thread-safety"]}}],"schema_version":"1.7.3","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}