crossbeam-channel Undefined Behavior before v0.4.4
### Impact The affected version of this crate's 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. ### Patches This has been fixed in crossbeam-channel 0.4.4. We recommend users to upgrade to 0.4.4. ### References See https://github.com/crossbeam-rs/crossbeam/pull/533, https://github.com/crossbeam-rs/crossbeam/issues/539, and https://github.com/RustSec/advisory-db/pull/425 for more details. ### License This advisory is in the public domain.
describes (2)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2020-35904US | medium5.5 | — | ||
An issue was discovered in the crossbeam-channel crate before 0.4.4 for Rust. It has incorrect expectations about the relationship between the memory allocation and how many iterat… | ||||
| CVE-2020-15254US | critical9.8 | — | ||
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 capac… | ||||
references
External citations — patches, advisories, analysis.
- https://github.com/RustSec/advisory-db/pull/425WEB
- https://github.com/crossbeam-rs/crossbeamPACKAGE
- https://github.com/crossbeam-rs/crossbeam/issues/539WEB
- https://github.com/crossbeam-rs/crossbeam/pull/533WEB
- https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-v5m7-53cv-f3hxWEB
- https://nvd.nist.gov/vuln/detail/CVE-2020-15254ADVISORY
- https://rustsec.org/advisories/RUSTSEC-2020-0052.htmlWEB
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan