CVE-2020-36445: Data races in convec
8.1
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.55836%
CWE
Published
8/25/2021
Updated
1/27/2023
KEV Status
No
Technology
Rust
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
convec | rust | <= 2.0.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from improper trait implementations rather than specific functions. The ConVec<T>
type unconditionally implements Send
and Sync
traits without enforcing that T: Send
or T: Sync
. This allows non-thread-safe types (e.g., Rc<T>
, Cell<T>
) to be used in concurrent contexts, leading to data races. The root cause is the unsafe unsafe impl<T> Send for ConVec<T> {}
and unsafe impl<T> Sync for ConVec<T> {}
blocks in the crate's implementation. These trait implementations violate Rust's safety guarantees by enabling cross-thread sharing of non-Send
/Sync
types. No specific functions are directly implicated; the flaw lies in the type's trait bounds.