rustsec-2020-0094
Vulnerability from osv_rustsec
Published
2020-12-01 12:00
Modified
2023-06-13 13:10
Summary
Unsound: can make `ARefss` contain a !Send, !Sync object.
Details
ARefss<'a, V> is a type that is assumed to contain objects that are Send + Sync.
In the affected versions of this crate,
Send/Sync traits are unconditionally implemented for ARefss<'a, V>.
By using the ARefss::map() API, we can insert a !Send or !Sync object into ARefss<'a, V>. After that, it is possible to create a data race to the inner object of ARefss<'a, V>, which can lead to undefined behavior & memory corruption.
The flaw was corrected in commit 6dd7ca0 (https://github.com/diwic/reffers-rs/commit/6dd7ca0d50f2464df708975cdafcfaeeb6d41c66) by adding trait bound V: Send + Sync to ARefss::map() API.
{
"affected": [
{
"database_specific": {
"categories": [
"memory-corruption",
"thread-safety"
],
"cvss": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H",
"informational": "unsound"
},
"ecosystem_specific": {
"affected_functions": null,
"affects": {
"arch": [],
"functions": [],
"os": []
}
},
"package": {
"ecosystem": "crates.io",
"name": "reffers",
"purl": "pkg:cargo/reffers"
},
"ranges": [
{
"events": [
{
"introduced": "0.0.0-0"
},
{
"fixed": "0.6.1"
}
],
"type": "SEMVER"
}
],
"versions": []
}
],
"aliases": [
"CVE-2020-36203",
"GHSA-39xg-8p43-h76x"
],
"database_specific": {
"license": "CC0-1.0"
},
"details": "`ARefss\u003c\u0027a, V\u003e` is a type that is assumed to contain objects that are `Send + Sync`.\n\nIn the affected versions of this crate,\n`Send`/`Sync` traits are unconditionally implemented for `ARefss\u003c\u0027a, V\u003e`.\n\nBy using the `ARefss::map()` API, we can insert a `!Send` or `!Sync` object into `ARefss\u003c\u0027a, V\u003e`. After that, it is possible to create a data race to the inner object of `ARefss\u003c\u0027a, V\u003e`, which can lead to undefined behavior \u0026 memory corruption.\n\nThe flaw was corrected in commit 6dd7ca0 (https://github.com/diwic/reffers-rs/commit/6dd7ca0d50f2464df708975cdafcfaeeb6d41c66) by adding trait bound `V: Send + Sync` to `ARefss::map()` API.",
"id": "RUSTSEC-2020-0094",
"modified": "2023-06-13T13:10:24Z",
"published": "2020-12-01T12:00:00Z",
"references": [
{
"type": "PACKAGE",
"url": "https://crates.io/crates/reffers"
},
{
"type": "ADVISORY",
"url": "https://rustsec.org/advisories/RUSTSEC-2020-0094.html"
},
{
"type": "REPORT",
"url": "https://github.com/diwic/reffers-rs/issues/7"
}
],
"related": [],
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H",
"type": "CVSS_V3"
}
],
"summary": "Unsound: can make `ARefss` contain a !Send, !Sync object."
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…