CVE-2020-15254 json
Undefined Behavior in bounded Crossbeam channel
published 2020-06-26 6 y ago modified 2026-07-08 4 mo ago also CVE-2020-35904 , GHSA-m8h8-v6jh-c762 , GHSA-v5m7-53cv-f3hx , RUSTSEC-2020-0052 , EUVD-2021-1883
- cvss
- 8.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 2.7%
- EPSS 2.7% chance of exploitation in 30 days, percentile 86%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- crates.io crossbeam-channel 0.4.4
- crossbeam_project crossbeam 0.4.4
- firefox Ubuntu 16.04 LTS 82.0+build2-0ubuntu0.16.04.5
- firefox Ubuntu 18.04 LTS 82.0+build2-0ubuntu0.18.04.1
- firefox Ubuntu 20.04 LTS 82.0+build2-0ubuntu0.20.04.1
ubuntu advisories UBUNTU-CVE-2020-15254
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- firefox-esr openSUSE Tumbleweed 128.5.1-1.1
- MozillaFirefox openSUSE Tumbleweed 92.0-1.2
opensuse advisories openSUSE-SU-2024:14572-1openSUSE-SU-2024:10600-1
- firefox Alpine 3.23, Alpine 3.22, Alpine 3.21 +9 more 82.0-r0
- librewolf Alpine 3.24, Alpine 3.23, Alpine 3.22 +1 more 82.0-r0
alpine advisories ALPINE-CVE-2020-15254
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- firefox Arch Linux 82.0-1
arch linux advisories AVG-1256
- github.com/crossbeam-rs/crossbeam#533 pull request
- github.com/RustSec/advisory-db#425 advisory
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2020-15254 updated cvss 9.8
Mozilla: Undefined behavior in bounded channel of crossbeam rust crate
-
Red Hat Enterprise Linux 6 firefox Red Hat Enterprise Linux 7 firefox Red Hat Enterprise Linux 8 firefoxnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
2.70% chance of exploitation in the next 30 days, higher than 86% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/crossbeam-rs/crossbeam/pull/533 referenced PoC, tagged "exploit" by a source, unverified
- github.com https://github.com/crossbeam-rs/crossbeam/issues/539 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.1 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| NVD | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| NVD | 2.0 | 7.5 | AV:N/AC:L/Au:N/C:P/I:P/A:P |
| GitHub | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| GitHub | 3.1 | 8.1 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | crossbeam-channel | >=0.4.3, <0.4.4 |
0.4.4 |
Affected products
- crossbeam-rs crossbeam
Classification
References
-
github.com
/crossbeam-rs/crossbeam/pull/533
web, exploit, patch, third-party-advisory
-
github.com
/RustSec/advisory-db/pull/425
web, patch, third-party-advisory
-
github.com
/crossbeam-rs/crossbeam/issues/539
web, exploit, third-party-advisory
-
github.com
/crossbeam-rs/crossbeam/security/advisories/GHSA-v5m7-53cv-f3hx
web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2020-35904
advisory
-
github.com
/crossbeam-rs/crossbeam
package
-
rustsec.org
/advisories/RUSTSEC-2020-0052.html
web, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2020-15254
advisory
-
crates.io
/crates/crossbeam-channel
package
Sources
- CVE List CVE-2020-15254
- GitHub Advisory GHSA-m8h8-v6jh-c762
- GitHub Advisory GHSA-v5m7-53cv-f3hx
- NVD CVE-2020-15254
- OSV RUSTSEC-2020-0052
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.