CVE-2020-15254: Crossbeam channel Crossbeam-channel Undefined Behavior Before V0.4.4 Vulnerability
HIGHCVE-2020-15254 is a HIGH (CVSS 8.1) crossbeam-channel undefined behavior before v0.4.4 vulnerability (CWE-401: Missing Release of Memory after Effective Lifetime) affecting Crossbeam channel libraries in the crates.io ecosystem. The issue involves crossbeam-channel undefined behavior before v0.4.4. Remediation is available by upgrading affected packages to version 0.4.4.
CVE-2020-15254 at a Glance
Security Impact
CVSS: 8.1
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H).
How to Fix CVE-2020-15254
To remediate this vulnerability, upgrade all affected Crossbeam channel dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade crossbeam-channel to 0.4.4
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for crossbeam-channel
How to Check if You Are Affected
To determine whether your application is affected by CVE-2020-15254, inspect your project dependencies for Crossbeam channel:
inspect dependencies for crossbeam-channel
Analyze the terminal output to locate any version of Crossbeam channel in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 0.4.4), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-401: Missing Release of Memory after Effective Lifetime, where the product does not sufficiently track and release allocated memory after it has been used, making the memory unavailable for reallocation and reuse. In Crossbeam channel, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2020-15254 Affected Crossbeam channel Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
crossbeam-channel
|
crates.io |
≥ 0.4.3
< 0.4.4
All 1 versions
0.4.3
|
0.4.4
|
References
Frequently Asked Questions
What is CVE-2020-15254?
Which Crossbeam channel versions are affected?
What version fixes CVE-2020-15254?
Is crossbeam-channel affected?
What is the CVSS score of CVE-2020-15254?
What CWE is associated with CVE-2020-15254?
How can I check crates.io dependencies for CVE-2020-15254?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-v5m7-53cv-f3hx",
"modified" : "2022-08-10T23:46:00Z",
"published" : "2021-08-25T21:01:13Z",
"aliases" : [ "CVE-2020-15254" ],
"summary" : "crossbeam-channel Undefined Behavior before v0.4.4",
"details" : "### Impact\n\nThe 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.\n\n### Patches\n\nThis has been fixed in crossbeam-channel 0.4.4.\n\nWe recommend users to upgrade to 0.4.4.\n\n### References\n\nSee 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.\n\n### License\n\nThis advisory is in the public domain.",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "crates.io",
"name" : "crossbeam-channel"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0.4.3"
}, {
"fixed" : "0.4.4"
} ]
} ],
"versions" : [ "0.4.3" ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-v5m7-53cv-f3hx"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2020-15254"
}, {
"type" : "WEB",
"url" : "https://github.com/crossbeam-rs/crossbeam/issues/539"
}, {
"type" : "WEB",
"url" : "https://github.com/RustSec/advisory-db/pull/425"
}, {
"type" : "WEB",
"url" : "https://github.com/crossbeam-rs/crossbeam/pull/533"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/crossbeam-rs/crossbeam"
}, {
"type" : "WEB",
"url" : "https://rustsec.org/advisories/RUSTSEC-2020-0052.html"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-119", "CWE-401" ],
"severity" : "HIGH",
"github_reviewed" : true,
"github_reviewed_at" : "2021-08-03T22:53:34Z",
"nvd_published_at" : "2020-10-16T17:15:00Z"
}
}