CVE-2020-35915
Data races in futures-intrusive
An issue was discovered in the futures-intrusive crate before 0.4.0 for Rust. GenericMutexGuard allows cross-thread data races of non-Sync types.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
5.5
An issue was discovered in the futures-intrusive crate before 0.4.0 for Rust. GenericMutexGuard allows cross-thread data races of non-Sync types.
- Record
CVE-2020-35915- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - CVSS 2.0
- 2.1 Low
AV:L/AC:L/Au:N/C:N/I:N/A:P - Updated
- 2026-11-02
CVE List No score
An issue was discovered in the futures-intrusive crate before 0.4.0 for Rust. GenericMutexGuard allows cross-thread data races of non-Sync types.
- Record
CVE-2020-35915- Updated
- 2026-11-02
EUVDEUVD-2021-1560 No score
An issue was discovered in the futures-intrusive crate before 0.4.0 for Rust. GenericMutexGuard allows cross-thread data races of non-Sync types.
- Record
EUVD-2021-1560- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-4hjg-cx88-g9f9
5.5
Data races in futures-intrusive
GenericMutexGuard<T> was given the Sync auto trait as long as T is Send due to its contained members. However, since the guard is supposed to represent an acquired lock and allows concurrent access to the underlying data from different threads, it should only be Sync when the underlying data is.
This is a soundness issue and allows data races, potentially leading to crashes and segfaults from safe Rust code.
The flaw was corrected by adding a T: Send + Sync bound for GenericMutexGuard's Sync trait.
- Record
GHSA-4hjg-cx88-g9f9- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-362
- Updated
- 2026-11-02
OSVGHSA-4hjg-cx88-g9f9
5.5
Data races in futures-intrusive
GenericMutexGuard<T> was given the Sync auto trait as long as T is Send due to its contained members. However, since the guard is supposed to represent an acquired lock and allows concurrent access to the underlying data from different threads, it should only be Sync when the underlying data is.
This is a soundness issue and allows data races, potentially leading to crashes and segfaults from safe Rust code.
The flaw was corrected by adding a T: Send + Sync bound for GenericMutexGuard's Sync trait.
- Record
GHSA-4hjg-cx88-g9f9- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-362
- Updated
- 2026-11-02
OSVRUSTSEC-2020-0072
5.5
GenericMutexGuard allows data races of non-Sync types across threads
GenericMutexGuard<T> was given the Sync auto trait as long as T is Send
due to its contained members. However, since the guard is supposed to represent
an acquired lock and allows concurrent access to the underlying data from
different threads, it should only be Sync when the underlying data is.
This is a soundness issue and allows data races, potentially leading to crashes and segfaults from safe Rust code.
The flaw was corrected by adding a T: Send + Sync bound for
GenericMutexGuard's Sync trait.
This bug is similar to one in
std::sync::Mutex.
- Record
RUSTSEC-2020-0072- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
futures-intrusivecrates.io |
before 0.4.0 | 0.4.0 |
futures-intrusivecrates.io |
0.0.0-0 up to 0.4.0 | 0.4.0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2020-35915 is a medium vulnerability (CVSS 5.5) in Futures-intrusive Project Futures-intrusive, published October 31, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.38%, the 32nd percentile. Fixed in futures-intrusive 0.4.0.