Crossbeam is a set of tools for concurrent programming. In crossbeam-channel before version 0.4.4, the bounded channel incorrectly assumes that `Vec::from_iter` has allocated capacity that same as the number of iterator elements. `Vec::from_iter` does not actually guarantee that and may allocate extra memory. The destructor of the `bounded` channel reconstructs `Vec` from the raw pointer based on the incorrect assumes described above. This is unsound and causing deallocation with the incorrect capacity when `Vec::from_iter` has allocated different sizes with the number of iterator elements. This has been fixed in crossbeam-channel 0.4.4.
References
Link | Resource |
---|---|
https://github.com/RustSec/advisory-db/pull/425 | Patch Third Party Advisory |
https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-v5m7-53cv-f3hx | Third Party Advisory |
https://github.com/crossbeam-rs/crossbeam/issues/539 | Exploit Third Party Advisory |
https://github.com/crossbeam-rs/crossbeam/pull/533 | Exploit Patch Third Party Advisory |
Configurations
Information
Published : 2020-10-16 10:15
Updated : 2022-08-05 12:30
NVD link : CVE-2020-15254
Mitre link : CVE-2020-15254
JSON object : View
CWE
CWE-401
Missing Release of Memory after Effective Lifetime
Products Affected
crossbeam_project
- crossbeam