RUSTSEC-2026-0298 Use-after-free when a future's `Drop` panics while the container is dropped

Not scored Published

A use-after-free vulnerability in the Storage component allows attackers to cause memory corruption or crashes when a future's Drop implementation panics during container cleanup.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Not stated
Victim action needed
Not needed
Fix
Available

What is RUSTSEC-2026-0298?

RUSTSEC-2026-0298 is an use after free vulnerability in unicycle, published on 12 Sep 2026.

Official description

Storage::clear walks the slab, empties each entry and frees the Task allocation once its reference count reaches zero. self.tasks.set_len(0) only runs after the loop.

Emptying an entry drops the user future it holds, and T carries no bounds excluding a panicking Drop. If one unwinds, the length is never committed and self.tasks still holds the pointers already processed. Drop for Storage calls clear again, and the second pass dereferences (*task.as_ptr()).entry on allocations the first pass already freed — a use-after-free (CWE-416) reachable from safe Rust.

Storage is reached only through Unordered, whose Drop calls clear. No particular method call is needed; dropping the container is enough.

Mitigation

Update to 0.10.3.

Which versions are affected by RUSTSEC-2026-0298?

1 open source package ship an affected version, including unicycle.

PackageAffectedFixed in
unicycle crates.ioFrom 0.0.0-00.10.3

How do I fix RUSTSEC-2026-0298?

Upgrade unicycle to 0.10.3 or later.

Upgrade to the fixed version. These bugs are found with fuzzing and sanitisers and avoided by memory-safe languages. More about Use after free.

Is RUSTSEC-2026-0298 being exploited?

There is no known exploitation of RUSTSEC-2026-0298 in the wild and no public exploit code.

Sources

Also known as GHSA-8gw6-724c-9h38.

Is RUSTSEC-2026-0298 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free