CVE-2020-36218
Improper synchronization in buttplug
An issue was discovered in the buttplug crate before 1.0.4 for Rust. ButtplugFutureStateShared does not properly consider (!Send|!Sync) objects, leading to a data race.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
5.9
An issue was discovered in the buttplug crate before 1.0.4 for Rust. ButtplugFutureStateShared does not properly consider (!Send|!Sync) objects, leading to a data race.
- Record
CVE-2020-36218- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS 2.0
- 4.3 Medium
AV:N/AC:M/Au:N/C:N/I:N/A:P - Updated
- 2026-11-02
CVE List No score
An issue was discovered in the buttplug crate before 1.0.4 for Rust. ButtplugFutureStateShared does not properly consider (!Send|!Sync) objects, leading to a data race.
- Record
CVE-2020-36218- Updated
- 2026-11-02
EUVDEUVD-2021-1861 No score
An issue was discovered in the buttplug crate before 1.0.4 for Rust. ButtplugFutureStateShared does not properly consider (!Send|!Sync) objects, leading to a data race.
- Record
EUVD-2021-1861- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-r7rv-2rph-hvhj
5.9
Improper synchronization in buttplug
An issue was discovered in the buttplug crate before 1.0.4 for Rust. ButtplugFutureStateShared does not properly consider (!Send|!Sync) objects, leading to a data race.
- Record
GHSA-r7rv-2rph-hvhj- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-662
- Updated
- 2026-11-02
OSV
5.9
An issue was discovered in the buttplug crate before 1.0.4 for Rust. ButtplugFutureStateShared does not properly consider (!Send|!Sync) objects, leading to a data race.
- Record
CVE-2020-36218- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVGHSA-r7rv-2rph-hvhj
5.9
Improper synchronization in buttplug
An issue was discovered in the buttplug crate before 1.0.4 for Rust. ButtplugFutureStateShared does not properly consider (!Send|!Sync) objects, leading to a data race.
- Record
GHSA-r7rv-2rph-hvhj- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-662
- Updated
- 2026-11-02
OSVRUSTSEC-2020-0112
5.9
ButtplugFutureStateShared allows data race to (!Send|!Sync) objects
ButtplugFutureStateShared<T> implements Send & Sync regardless of T.
If T: !Send for ButtplugFutureStateShared<T>, it is possible to move non-Send types across thread boundaries (e.g. T=Rc<T>) and lead to undefined behavior.
If T: !Sync for ButtplugFutureStateShared<T>, it is possible to cause data race to T (e.g. T=Arc<Cell<_>>) and lead to undefined behavior.
The flaw was corrected in version 1.0.4 by removing manual implementations of Send/Sync for ButtplugFutureStateShared<T> to let rustc generate auto trait implementations with correct trait bounds on T.
- Record
RUSTSEC-2020-0112- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Affected products
Affected packages
History
| Recorded | Changed | Sources |
|---|---|---|
| facts | ||
| 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-36218 is a medium vulnerability (CVSS 5.9) in Nonpolynomial Buttplug, published December 18, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.12%, the 66th percentile. Fixed in buttplug 1.0.4.