Data race in conqueue
High severity
GitHub Reviewed
Published
Aug 25, 2021
to the GitHub Advisory Database
•
Updated Jun 22, 2023
Description
Published by the National Vulnerability Database
Aug 8, 2021
Reviewed
Aug 10, 2021
Published to the GitHub Advisory Database
Aug 25, 2021
Last updated
Jun 22, 2023
Affected versions of this crate unconditionally implemented
Send
/Sync
forQueueSender<T>
, allowing to send non-SendT
to other threads by invoking(&QueueSender<T>).send()
.This fails to prevent users from creating data races by sending types like
Rc<T>
orArc<Cell<T>>
to other threads, which can lead to memory corruption. The flaw was corrected in commit1e462c3
by imposingT: Send
to bothSend
/Sync
impls forQueueSender<T>
/QueueReceiver<T>
.References