{"id":"GHSA-8892-84wf-cg8f","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`. `SyncChannel\u003cT\u003e` 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\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.\n","aliases":["CVE-2020-36446","GHSA-36cg-4jff-5863","RUSTSEC-2020-0126"],"modified":"2023-11-08T04:03:45.337562Z","published":"2021-08-25T21:00:16Z","database_specific":{"cwe_ids":["CWE-362"],"severity":"HIGH","github_reviewed":true,"github_reviewed_at":"2021-08-06T18:04:55Z","nvd_published_at":null},"references":[{"type":"WEB","url":"https://github.com/kitsuneninetails/signal-rust/issues/2"},{"type":"WEB","url":"https://github.com/kitsuneninetails/signal-rust"},{"type":"WEB","url":"https://rustsec.org/advisories/RUSTSEC-2020-0126.html"}],"affected":[{"package":{"name":"signal-simple","ecosystem":"crates.io","purl":"pkg:cargo/signal-simple"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"0.1.1"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2021/08/GHSA-8892-84wf-cg8f/GHSA-8892-84wf-cg8f.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}