NetSight
high8.1

CVE-2020-36435

Data race in ruspiro-singleton

Impact

`Singleton<T>` is meant to be a static object that can be initialized lazily. In order to satisfy the requirement that `static` items must implement `Sync`, `Singleton` implemented both `Sync` and `Send` unconditionally. This allows for a bug where non-`Sync` types such as `Cell` can be used in singletons and cause data races in concurrent programs. The flaw was corrected in commit `b0d2bd20e` by adding trait bounds, requiring the contaiend type to implement `Sync`.

Affected packages

EcosystemPackageAffectedFixed in
rustruspiro-singleton< 0.4.10.4.1

Affected products

VendorProductAffected versions
Ruspiro-Singleton ProjectRuspiro-Singleton
before 0.4.1

Weakness classification

References