GitHub Advisoryadvisory · crates.io

GHSA-pg9f-39pc-qf8g crossbeam-channel Vulnerable to Double Free on Drop

MEDIUM Published 2025-04-10 Modified 2025-09-25 Official page ↗
Aliases
CVE-2025-4574
Ecosystem
crates.io
Packages
crossbeam-channel
Severity
Moderate
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
Weaknesses
CWE-415
Reviewed
2025-04-10

Affected packages

• crates.io crossbeam-channel: >= 0.5.12, < 0.5.15 → fixed in 0.5.15

Description

The internal `Channel` type's `Drop` method has a race which could, in some circumstances, lead to a double-free. This could result in memory corruption. Quoting from the upstream description in merge request \#1187: > The problem lies in the fact that `dicard_all_messages` contained two paths that could lead to `head.block` being read but only one of them would swap the value. This meant that `dicard_all_messages` could end up observing a non-null block pointer (and therefore attempting to free it) without setting `head.block` to null. This would then lead to `Channel::drop` making a second attempt at dropping the same pointer. The bug was introduced while fixing a memory leak, in upstream MR \#1084, first published in 0.5.12. The fix is in upstream MR \#1187 and has been published in 0.5.15

Related

Alias · CVE (1)

  • CVE-2025-4574 In crossbeam-channel rust crate, the internal `Channel` type's `Drop` method has a race condition which could, in some circumstances, lead… vulnerability

Weakness · CWE (1)

References