{"id":"CVE-2020-35910","aliases":["DEBIAN-CVE-2020-35910","EUVD-2021-1825","GHSA-ppj3-7jw3-8vc4","RUSTSEC-2020-0070","UBUNTU-CVE-2020-35910"],"status":"published","title":"Data races in lock_api","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedMutexGuard unsoundness.","severity":{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-11","score":0.00331,"percentile":0.26562,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-362"],"published":"2020-11-08T12:00:00Z","modified":"2026-10-26T12:02:48Z","fixes":[{"ecosystem":"crates.io","package":"lock_api","fixed_in":["0.4.2"],"sources":["ghsa"]},{"ecosystem":"Debian:12","package":"rust-lock-api","fixed_in":["0.4.5-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"rust-lock-api","fixed_in":["0.4.5-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"rust-lock-api","fixed_in":["0.4.5-1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"lock_api","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.4.2"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"rust-lock-api","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.4.5-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"rust-lock-api","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.4.5-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"rust-lock-api","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.4.5-1"}]}]},{"source":"osv","ecosystem":"crates.io","package":"lock_api","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.4.2"}]}],"bundled":5},{"source":"osv","ecosystem":"crates.io","package":"lock_api","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.4.2"}]}],"bundled":5},{"source":"osv","ecosystem":"crates.io","package":"lock_api","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.4.2"}]}],"bundled":5},{"source":"osv","ecosystem":"crates.io","package":"lock_api","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.4.2"}]}],"bundled":5},{"source":"osv","ecosystem":"crates.io","package":"lock_api","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.4.2"}]}],"bundled":5},{"source":"osv","ecosystem":"crates.io","package":"lock_api","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.4.2"}]}],"bundled":5},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"rust-lock-api","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.1.5-1","0.3.1-1","0.3.2-1","0.3.3-1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"rust-lock-api","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.3.4-1","0.4.5-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"rust-lock-api","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4.9-1","0.4.11-1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"rust-lock-api","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4.12-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"rust-lock-api","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4.14-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"rust-lock-api","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4.12-1","0.4.13-1","0.4.14-1"]}],"products":[{"vendor":"lock_api_project","product":"lock_api"}],"references":[{"url":"https://rustsec.org/advisories/RUSTSEC-2020-0070.html","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","advisory","web","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-35910","tags":["advisory"]},{"url":"https://github.com/Amanieu/parking_lot/pull/262","tags":["web","report"]},{"url":"https://github.com/Amanieu/parking_lot/commit/7de94f95f519d8281cb48457964065b463d26736","tags":["web"]},{"url":"https://github.com/advisories/GHSA-ppj3-7jw3-8vc4"},{"url":"https://security-tracker.debian.org/tracker/CVE-2020-35910","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-35912","tags":["advisory"]},{"url":"https://github.com/Amanieu/parking_lot","tags":["package"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-35914","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-35913","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-35911","tags":["advisory"]},{"url":"https://crates.io/crates/lock_api","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2020-35910","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-35910","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2020-35910","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedMutexGuard unsoundness.","status":"published","published":"2020-12-31T08:20:21Z","modified":"2024-08-04T17:16:13.21Z","updated_at":"2026-11-02T14:35:57.67317Z"}],"euvd":[{"id":"EUVD-2021-1825","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedMutexGuard unsoundness.","status":"published","published":"2020-12-31T08:20:21Z","modified":"2024-08-04T17:16:13Z","updated_at":"2026-11-03T03:07:04.065361Z"}],"ghsa":[{"id":"GHSA-ppj3-7jw3-8vc4","title":"Data races in lock_api","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedMutexGuard unsoundness.","status":"published","published":"2021-08-25T20:49:35Z","modified":"2025-05-23T18:33:35Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-362"],"updated_at":"2026-11-02T14:38:44.991725Z"}],"nvd":[{"id":"CVE-2020-35910","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedMutexGuard unsoundness.","status":"published","published":"2020-12-31T09:15:15.397Z","modified":"2026-06-17T03:14:35.24Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary"},{"version":"2.0","score":2.1,"vector":"AV:L/AC:L/Au:N/C:N/I:N/A:P","level":"low","assessor":"primary"}],"updated_at":"2026-11-02T14:06:28.340168Z"}],"osv":[{"id":"CVE-2020-35910","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedMutexGuard unsoundness.","status":"published","published":"2020-12-31T09:15:15.397Z","modified":"2026-10-24T10:30:31.302394232Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:44:16.612899Z"},{"id":"CVE-2020-35911","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedRwLockReadGuard unsoundness.","status":"published","published":"2020-12-31T09:15:15.457Z","modified":"2026-10-24T10:30:39.387601762Z","cvss":[{"version":"3.1","score":4.7,"vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:44:16.612899Z"},{"id":"CVE-2020-35912","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedRwLockWriteGuard unsoundness.","status":"published","published":"2020-12-31T09:15:15.52Z","modified":"2026-10-24T10:30:28.624775954Z","cvss":[{"version":"3.1","score":4.7,"vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:44:16.612899Z"},{"id":"CVE-2020-35913","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of RwLockReadGuard unsoundness.","status":"published","published":"2020-12-31T09:15:15.583Z","modified":"2026-10-24T10:30:20.880787529Z","cvss":[{"version":"3.1","score":4.7,"vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:44:16.612899Z"},{"id":"CVE-2020-35914","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of RwLockWriteGuard unsoundness.","status":"published","published":"2020-12-31T09:15:15.647Z","modified":"2026-10-24T10:30:52.542902986Z","cvss":[{"version":"3.1","score":4.7,"vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:44:16.612899Z"},{"id":"DEBIAN-CVE-2020-35910","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedMutexGuard unsoundness.","status":"published","published":"2020-12-31T09:15:15.397Z","modified":"2026-10-26T12:02:48.396428131Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:45:34.019707Z"},{"id":"GHSA-5wg8-7c9q-794v","title":"Data races in lock_api","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedRwLockWriteGuard unsoundness.","status":"published","published":"2021-08-25T20:50:00Z","modified":"2024-03-15T00:05:20.10247Z","cvss":[{"version":"3.1","score":4.7,"vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-362"],"updated_at":"2026-11-02T15:46:38.911014Z"},{"id":"GHSA-gmv4-vmx3-x9f3","title":"Data races in lock_api","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of RwLockWriteGuard unsoundness.","status":"published","published":"2021-08-25T20:49:37Z","modified":"2024-03-15T00:05:20.10247Z","cvss":[{"version":"3.1","score":4.7,"vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-362"],"updated_at":"2026-11-02T15:46:48.191583Z"},{"id":"GHSA-hj9h-wrgg-hgmx","title":"Data races in lock_api","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of RwLockReadGuard unsoundness.","status":"published","published":"2021-08-25T20:50:02Z","modified":"2024-03-15T00:05:20.10247Z","cvss":[{"version":"3.1","score":4.7,"vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-362"],"updated_at":"2026-11-02T15:46:49.28217Z"},{"id":"GHSA-ppj3-7jw3-8vc4","title":"Data races in lock_api","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedMutexGuard unsoundness.","status":"published","published":"2021-08-25T20:49:35Z","modified":"2025-05-23T18:33:34Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-362"],"updated_at":"2026-11-02T15:46:53.244788Z"},{"id":"GHSA-vh4p-6j7g-f4j9","title":"Data races in lock_api","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedRwLockReadGuard unsoundness.","status":"published","published":"2021-08-25T20:49:56Z","modified":"2024-03-15T00:05:20.10247Z","cvss":[{"version":"3.1","score":4.7,"vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-362"],"updated_at":"2026-11-02T15:46:57.348035Z"},{"id":"UBUNTU-CVE-2020-35910","description":"An issue was discovered in the lock_api crate before 0.4.2 for Rust. A data race can occur because of MappedMutexGuard unsoundness.","status":"published","published":"2020-12-31T09:15:00Z","modified":"2026-10-17T12:56:13.876563495Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:54:25.179924Z"},{"id":"RUSTSEC-2020-0070","title":"Some lock_api lock guard objects can cause data races","description":"Affected versions of lock_api had unsound implementations of the `Send` or\n`Sync` traits for some guard objects, namely:\n\n* MappedMutexGuard\n* MappedRwLockReadGuard\n* MappedRwLockWriteGuard\n* RwLockReadGuard\n* RwLockWriteGuard\n\nThese guards could allow data races through types that are not safe to `Send`\nacross thread boundaries in safe Rust code.\n\nThis issue was fixed by changing the trait bounds on the `Mapped` guard types\nand removing the `Sync` trait for the `RwLock` guards.","status":"published","published":"2020-11-08T12:00:00Z","modified":"2024-03-15T00:05:20.10247Z","updated_at":"2026-11-02T15:53:39.492624Z"}]}}
