unicycle use-after-free in Unordered drop with panicking futures

Severity: info · Published 2026-09-12

The unicycle Rust library manages concurrent futures in a container. A use-after-free memory safety bug occurs if a future's cleanup function panics while the container is being dropped, potentially leading to memory corruption or crashes. This vulnerability is triggered automatically when the container is destroyed and requires no special method calls.

Technologies: unicycle (crates.io). Vendors: crates.io.

Quick answers

Is This vulnerability exploited in the wild?
No. Junglewise Threat Intelligence has no report of This vulnerability being exploited in the wild.
How severe is This vulnerability?
Informational severity, published 12 September 2026.
Which products and versions are affected?
unicycle (crates.io) SEMVER:introduced=0.0.0-0,fixed=0.10.3; Unicycle before 0.10.3.
Is there a fix for This vulnerability?
Yes. unicycle (crates.io): upgrade to 0.10.3 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is This vulnerability attacked?
It is attacked with local access, in a software library.
Am I affected?
Check whether you run unicycle (crates.io) or Unicycle at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • unicycle (crates.io): upgrade to 0.10.3 or later
    cargo update -p unicycle

Technical details

The vulnerability is a use-after-free (CWE-416) in the Storage::clear method. When iterating over the task slab and dropping futures, if a future's Drop implementation panics, the length is never committed via set_len(0), leaving stale pointers in the slab. The Storage::drop implementation then calls clear again, dereferencing already-freed allocations. This is reachable from safe Rust through the Unordered container's drop implementation.

Affected products

  • unicycle unicycle before 0.10.3

Timeline

  • 2026-09-12: disclosed
  • 2026-09-22: patched: Version 0.10.3 released

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.