In the affected versions of the crate, AtomicBucket unconditionally implements Send/Sync traits. Therefore, users can create a data race to the inner T: !Sync by using the AtomicBucket::data_with() API. Such data races can potentially cause memory corruption or other undefined behavior.
The flaw was fixed in commit 8e6daab by adding appropriate Send/Sync bounds to the Send/Sync impl of struct Block (which is a data type contained inside AtomicBucket).
References:- https://nvd.nist.gov/vuln/detail/CVE-2021-45704
- https://raw.githubusercontent.com/rustsec/advisory-db/main/crates/metrics-util/RUSTSEC-2021-0113.md
- https://rustsec.org/advisories/RUSTSEC-2021-0113.html
- https://github.com/metrics-rs/metrics/issues/190
- https://github.com/metrics-rs/metrics/commit/8e6daab
- https://github.com/advisories/GHSA-cwvc-87xq-pc5m