Affected versions of this crate unconditionally implement Sync
for SyncRef<T>
. This definition allows data races if &T
is accessible through &SyncRef
.
SyncRef<T>
derives Clone
and Debug
, and the default implementations of those traits access &T
by invoking T::clone()
& T::fmt()
. It is possible to create data races & undefined behavior by concurrently invoking SyncRef<T>::clone()
or SyncRef<T>::fmt()
from multiple threads with T: !Sync
.
{ "nvd_published_at": null, "cwe_ids": [ "CWE-362" ], "severity": "HIGH", "github_reviewed": true, "github_reviewed_at": "2021-08-05T21:37:57Z" }