An issue was discovered in the cache crate through 2020-11-24 for Rust.
Affected versions of this crate unconditionally implement Send/Sync for Cache<K>
.
This allows users to insert K
that is not Send or not Sync.
This allows users to create data races by using non-Send types like Arc<Cell<T>>
or Rc<T>
as K
in Cache<K>
. It is also possible to create data races by using types like Cell<T>
or RefCell<T>
(types that are Send
but not Sync
).
Such data races can lead to memory corruption.
{ "nvd_published_at": "2021-08-08T06:15:00Z", "github_reviewed_at": "2021-08-18T20:30:56Z", "severity": "HIGH", "github_reviewed": true, "cwe_ids": [ "CWE-362", "CWE-77" ] }