{"id":"GHSA-rh4w-94hh-9943","summary":"MutexGuard::map can cause a data race in safe code","details":"Affected versions of the crate had a Send/Sync implementation for MappedMutexGuard that only considered variance on T, while MappedMutexGuard dereferenced to U.\n\nThis could of led to data races in safe Rust code when a closure used in MutexGuard::map() returns U that is unrelated to T.\n\nThe issue was fixed by fixing Send and Sync implementations, and by adding a PhantomData\u003c&'a mut U\u003e marker to the MappedMutexGuard type to tell the compiler that the guard is over U too.","aliases":["CVE-2020-35905","RUSTSEC-2020-0059"],"modified":"2023-11-08T04:03:38.548968Z","published":"2022-05-24T17:37:49Z","database_specific":{"severity":"MODERATE","github_reviewed":true,"github_reviewed_at":"2022-06-16T23:55:12Z","nvd_published_at":"2020-12-31T09:15:00Z","cwe_ids":["CWE-362"]},"references":[{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2020-35905"},{"type":"WEB","url":"https://github.com/rust-lang/futures-rs/issues/2239"},{"type":"PACKAGE","url":"https://github.com/rust-lang/futures-rs"},{"type":"WEB","url":"https://rustsec.org/advisories/RUSTSEC-2020-0059.html"}],"affected":[{"package":{"name":"futures-util","ecosystem":"crates.io","purl":"pkg:cargo/futures-util"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0.3.2"},{"fixed":"0.3.7"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/05/GHSA-rh4w-94hh-9943/GHSA-rh4w-94hh-9943.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H"}]}