crossbeam-utils provides atomics, synchronization primitives, scoped threads, and other utilities for concurrent programming in Rust. crossbeam-utils prior to version 0.8.7 incorrectly assumed that the alignment of {i,u}64
was always the same as Atomic{I,U}64
. However, the alignment of {i,u}64
on a 32-bit target can be smaller than Atomic{I,U}64
. This can cause unaligned memory accesses and data race. Crates using fetch_*
methods with AtomicCell<{i,u}64>
are affected by this issue. 32-bit targets without Atomic{I,U}64
and 64-bit targets are not affected by this issue. This has been fixed in crossbeam-utils 0.8.7. There are currently no known workarounds.
crossbeam-deque is a package of work-stealing deques for building task schedulers when programming in Rust. In versions prior to 0.7.4 and 0.8.0, the result of the race condition is that one or more tasks in the worker queue can be popped twice instead of other tasks that are forgotten and never popped. If tasks are allocated on the heap, this can cause double free and a memory leak. If not, this still can cause a logical bug. Crates using Stealer::steal
, Stealer::steal_batch
, or Stealer::steal_batch_and_pop
are affected by this issue. This has been fixed in crossbeam-deque 0.8.1 and 0.7.4.
Stay updated with the latest patches and releases. Plan your sofware desisgn. Avoid common known vulnerabilities fixed by the open source community
Latest patch release: 0.7.3
Latest minor release: 0.8.4
Latest major release: --
Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.
Apache-2.0 - Apache License 2.0