An issue was discovered in the bunch crate through 2020-11-12 for Rust.
Affected versions of this crate unconditionally implements Send
/Sync
for Bunch<T>
.
This allows users to insert T: !Sync
to Bunch<T>
. It is possible to create a data race to a T: !Sync
by invoking the Bunch::get()
API (which returns &T
) from multiple threads. It is also possible to send T: !Send
to other threads by inserting T
inside Bunch<T>
and sending Bunch<T>
to another thread, allowing to create a data race by inserting types like T = Rc<_>
.
Such data races can lead to memory corruption.
{ "nvd_published_at": "2021-08-08T06:15:00Z", "github_reviewed_at": "2021-08-09T21:34:27Z", "severity": "HIGH", "github_reviewed": true, "cwe_ids": [ "CWE-362", "CWE-77" ] }