high8.1
CVE-2020-36437
Data race in conqueue
Impact
Affected versions of this crate unconditionally implemented `Send`/`Sync` for `QueueSender<T>`, allowing to send non-Send `T` to other threads by invoking `(&QueueSender<T>).send()`. This fails to prevent users from creating data races by sending types like `Rc<T>` or `Arc<Cell<T>>` to other threads, which can lead to memory corruption. The flaw was corrected in commit `1e462c3` by imposing `T: Send` to both `Send`/`Sync` impls for `QueueSender<T>`/`QueueReceiver<T>`.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| rust | conqueue | < 0.4.0 | 0.4.0 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Conqueue Project | Conqueue | before 0.4.0 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://raw.githubusercontent.com/rustsec/advisory-db/main/crates/conqueue/RUSTSEC-2020-0117.md
- https://rustsec.org/advisories/RUSTSEC-2020-0117.html
- https://github.com/advisories/GHSA-368f-29c3-4f2r
- https://nvd.nist.gov/vuln/detail/CVE-2020-36437
- https://github.com/longshorej/conqueue/commit/1e462c32e7933821ddb26dc49fd4ffa5aeca97b8