GHSA-7mg7-m5c3-3hqj

Suggest an improvement
Source
https://github.com/advisories/GHSA-7mg7-m5c3-3hqj
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2021/08/GHSA-7mg7-m5c3-3hqj/GHSA-7mg7-m5c3-3hqj.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-7mg7-m5c3-3hqj
Withdrawn
2021-08-24T17:47:15Z
Published
2021-08-25T21:00:39Z
Modified
2021-08-24T17:47:15Z
Summary
Data races in unicycle
Details

Affected versions of this crate unconditionally implemented Send & Sync for types PinSlab<T> & Unordered<T, S>. This allows sending non-Send types to other threads and concurrently accessing non-Sync types from multiple threads.

This can result in a data race & memory corruption when types that provide internal mutability without synchronization are contained within PinSlab<T> or Unordered<T, S> and accessed concurrently from multiple threads.

The flaw was corrected in commits 92f40b4 & 6a6c367 by adding trait bound T: Send to Send impls for PinSlab<T> & Unordered<T, S> and adding T: Sync to Sync impls for PinSlab<T> & Unordered<T, S>.

Database specific
{
    "cwe_ids":  [
        "CWE-362"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2021-08-05T21:14:52Z",
    "nvd_published_at":  null,
    "severity":  "MODERATE"
}
References

Affected packages

crates.io / unicycle

Package

Name
unicycle
View open source insights on deps.dev
Purl
pkg:cargo/unicycle

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
0.7.1

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2021/08/GHSA-7mg7-m5c3-3hqj/GHSA-7mg7-m5c3-3hqj.json"