{"id":"GHSA-vj88-5667-w56p","summary":"Singleton lacks bounds on Send and Sync.","details":"`Singleton\u003cT\u003e` is meant to be a static object that can be initialized lazily. In\norder to satisfy the requirement that `static` items must implement `Sync`,\n`Singleton` implemented both `Sync` and `Send` unconditionally.\n\nThis allows for a bug where non-`Sync` types such as `Cell` can be used in\nsingletons and cause data races in concurrent programs.\n\nThe flaw was corrected in commit `b0d2bd20e` by adding trait bounds, requiring\nthe contaiend type to implement `Sync`.\n","modified":"2021-08-24T17:44:58Z","published":"2021-08-25T21:00:11Z","withdrawn":"2021-08-24T17:44:58Z","database_specific":{"severity":"MODERATE","github_reviewed":true,"github_reviewed_at":"2021-08-06T19:10:18Z","nvd_published_at":null,"cwe_ids":["CWE-362"]},"references":[{"type":"WEB","url":"https://github.com/RusPiRo/ruspiro-singleton/issues/10"},{"type":"PACKAGE","url":"https://github.com/RusPiRo/ruspiro-singleton"},{"type":"WEB","url":"https://rustsec.org/advisories/RUSTSEC-2020-0115.html"}],"affected":[{"package":{"name":"ruspiro-singleton","ecosystem":"crates.io","purl":"pkg:cargo/ruspiro-singleton"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.4.1"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2021/08/GHSA-vj88-5667-w56p/GHSA-vj88-5667-w56p.json"}}],"schema_version":"1.9.0"}