Paper/Archive/CVE-2020-15254

CVE-2020-15254

crossbeam-rs crossbeam — Undefined Behavior in bounded Crossbeam channel

Description · from the CVE record

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.

Affected

ProductAffectedFixed inSource
crossbeam< 0.4.4–CNA

Scores by source

NVD9.8CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
GitHub_M (CNA)8.1CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

References

refgithub.com/crossbeam-rs/crossbeam/security/advisories/GHSA-v5m7-53cv-f3hxrefgithub.com/crossbeam-rs/crossbeam/issues/539refgithub.com/crossbeam-rs/crossbeam/pull/533refgithub.com/RustSec/advisory-db/pull/425