{"id":"CVE-2020-35905","aliases":["GHSA-rh4w-94hh-9943","RUSTSEC-2020-0059"],"url":"https://o3.security/vulnerability/CVE-2020-35905","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<&'a mut U> marker to the MappedMutexGuard type to tell the compiler that the guard is over U too.","published":"2020-12-31T09:15:15.130Z","modified":"2026-07-08T23:35:26.696437Z","cvss":{"score":4.7,"severity":"MEDIUM","vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H"},"epss":{"score":0.00261,"percentile":0.18054,"asOf":"2026-08-23"},"cisaKev":null,"exploitsKnown":1,"affectedPackages":[{"ecosystem":"crates.io","name":"futures-util","fixedVersion":"0.3.7"}],"fix":null,"references":[{"type":"FIX","url":"https://rustsec.org/advisories/RUSTSEC-2020-0059.html"},{"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"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-07-08T23:35:26.696437Z"}}