Advisory Database
  • Advisories
  • Dependency Scanning
  1. cargo
  2. ›
  3. unbounded-spsc
  4. ›
  5. CVE-2026-46690

CVE-2026-46690: unbounded-spsc: Sender::send pointer-as-value transmute causes OOB read and fake-Arc drop under TX/RX race

May 29, 2026 (updated June 12, 2026)

Sender::send in src/lib.rs contains an unsafe block in the DISCONNECTED arm that transmutes a raw pointer (*mut Producer<T>) into the bytes of a value-level Consumer<T>. The author’s intent, visible in the surrounding comment at lines 386-390, was a value transmute. The shipped code is one level of indirection off.

The resulting Consumer<T> has its internal Arc::ptr set to the address of the producer field on the Sender, not the real ArcInner<Buffer<T>>. Every subsequent consumer.try_pop() walks Buffer<T> fields at offsets that lie inside the Sender<T> struct (over send_new, inner) and adjacent memory, an out-of-bounds read. When the fake Consumer<T> is dropped at the end of the unsafe block, its Drop calls Arc::drop_in_place on a non-ArcInner address: it decrements bytes that the type system treats as strong_count: AtomicUsize but that are actually the real Arc::ptr value of the Sender, and at zero count it calls dealloc(Layout::for_value(...)) on an address the allocator never returned.

Reachable from 100% safe Rust through the canonical channel pattern: a tx.send(msg) that races with rx.drop(). This is consistent with the SIGSEGV that issue #3 reports in your own test suite.

References

  • github.com/advisories/GHSA-6m57-8r3p-pqx6
  • github.com/spearman/unbounded-spsc/security/advisories/GHSA-6m57-8r3p-pqx6
  • nvd.nist.gov/vuln/detail/CVE-2026-46690

Code Behaviors & Features

Detect and mitigate CVE-2026-46690 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions up to 0.2.0

Solution

Unfortunately, there is no solution available yet.

Impact 5.8 MEDIUM

CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:H

Learn more about CVSS

Weakness

  • CWE-125: Out-of-bounds Read
  • CWE-415: Double Free
  • CWE-704: Incorrect Type Conversion or Cast
  • CWE-787: Out-of-bounds Write

Source file

cargo/unbounded-spsc/CVE-2026-46690.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Tue, 23 Jun 2026 12:24:54 +0000.