GitHub Advisoryadvisory · crates.io

GHSA-v5m7-53cv-f3hx crossbeam-channel Undefined Behavior before v0.4.4

HIGH Published 2021-08-25 Modified 2022-08-10 Official page ↗
Aliases
CVE-2020-15254
Ecosystem
crates.io
Packages
crossbeam-channel
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-119, CWE-401
Reviewed
2021-08-03

Affected packages

• crates.io crossbeam-channel: >= 0.4.3, < 0.4.4 → fixed in 0.4.4

Description

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.

Related

Alias · CVE (1)

  • CVE-2020-15254 Crossbeam is a set of tools for concurrent programming. vulnerability

Weakness · CWE (2)

  • CWE-119 Improper Restriction of Operations within the Bounds of a Memory Buffer weakness
  • CWE-401 Missing Release of Memory after Effective Lifetime weakness

References