Skip to content

← Public intelligence

crates.io package

crossbeam-channel

Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.

Open advisories

4 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.

  1. Medium, CVSS 6.3crates.ioPublished

    crossbeam-channel Vulnerable to Double Free on Drop

    CVE-2025-4574 · GHSA-pg9f-39pc-qf8g

    Affected
    • crates.io crossbeam-channel >= 0.5.12, < 0.5.15
    Fixed in
    0.5.15· Vendor fix available
    Issue
    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 dicardallmessages contained two paths that could lead to head.block being read but only one of them would swap the value. This meant that dicardallmessages 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

    Recommended action: Upgrade to 0.5.15 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  2. Unratedcrates.ioPublished

    Channel creates zero value of any type

    GHSA-9g55-pg62-m8hh

    Affected
    • crates.io crossbeam-channel < 0.4.3
    Fixed in
    0.4.3· Vendor fix available
    Issue
    Affected versions of this crate called mem::zeroed() to create values of a user-supplied type T. This is unsound e.g. if T is a reference type (which must be non-null). The flaw was corrected by avoiding the use of mem::zeroed(), using MaybeUninit instead.

    Recommended action: Upgrade to 0.4.3 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  3. High, CVSS 8.1crates.ioPublished

    crossbeam-channel Undefined Behavior before v0.4.4

    CVE-2020-15254 · GHSA-v5m7-53cv-f3hx

    Affected
    • crates.io crossbeam-channel >= 0.4.3, <= 0.4.3
    Fixed in
    0.4.4· Vendor fix available
    Issue
    Impact The affected version of this crate's the bounded channel incorrectly assumes that Vec::fromiter has allocated capacity that same as the number of iterator elements. Vec::fromiter 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::fromiter 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.

    Recommended action: Upgrade to 0.4.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  4. Medium, CVSS 5.5crates.ioPublished

    Incorrect buffer size in crossbeam-channel

    CVE-2020-35904 · GHSA-m8h8-v6jh-c762

    Affected
    • crates.io crossbeam-channel >= 0.4.3, < 0.4.4
    Fixed in
    0.4.4· Vendor fix available
    Issue
    The affected version of this crate's the bounded channel incorrectly assumes that Vec::fromiter has allocated capacity that same as the number of iterator elements. Vec::fromiter 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::fromiter has allocated different sizes with the number of iterator elements.

    Recommended action: Upgrade to 0.4.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →