PT-2020-17574 · Rust · Reffers
Published
2020-12-01
·
Updated
2021-08-25
·
CVE-2020-36203
CVSS v3.1
4.7
Medium
| Vector | AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H |
Name of the Vulnerable Software and Affected Versions
reffers crate through 2020-12-01
Description
The issue arises from the
ARefss<'a, V> type, which is assumed to contain objects that are Send + Sync. However, in the affected versions, Send/Sync traits are unconditionally implemented for ARefss<'a, V>. This allows the insertion of a !Send or !Sync object into ARefss<'a, V> using the ARefss::map() API. As a result, a data race can be created to the inner object of ARefss<'a, V>, leading to undefined behavior and memory corruption.Recommendations
To resolve the issue, update the reffers crate to a version that includes the fix from commit 6dd7ca0, which adds the trait bound
V: Send + Sync to the ARefss::map() API.
As a temporary workaround, consider avoiding the use of the ARefss::map() API with objects that are not Send + Sync.Exploit
Fix
Race Condition
Memory Corruption
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Reffers