RUSTSEC-2026-0256 Several methods in `circular-buffer` drop elements before updating the buffer's start/end metadata.
A panic during element drop in circular-buffer causes use-after-free or double-free, potentially leading to code execution or crashes.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Not stated
- Victim action needed
- Not needed
- Fix
- Available
What is RUSTSEC-2026-0256?
RUSTSEC-2026-0256 is an use after free vulnerability in circular-buffer, published on 11 Aug 2026.
Official description
Several methods in circular-buffer drop elements before updating the buffer's start/end metadata. If an element's Drop panics during the drop, the metadata update is skipped, so the buffer still treats the already-dropped elements as live. When the buffer is later dropped (or used after the panic is caught), those elements are visited again — a use-after-free / double-free reachable from safe Rust.
Impact
- CWE-415 (Double Free): the same allocation is freed twice.
- CWE-416 (Use-After-Free): a freed allocation is accessed during a repeated
Drop.
Reachable entirely from safe Rust via catch_unwind with element types whose Drop can panic.
Fix
Fixed in circular-buffer 2.0.1 by adjusting the buffer's start/end metadata before the elements are dropped.
Which versions are affected by RUSTSEC-2026-0256?
1 open source package ship an affected version, including circular-buffer.
| Package | Affected | Fixed in |
|---|---|---|
circular-buffer crates.io | From 0.0.0-0 | 2.0.1 |
How do I fix RUSTSEC-2026-0256?
Upgrade circular-buffer to 2.0.1 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-0256 being exploited?
There is no known exploitation of RUSTSEC-2026-0256 in the wild and no public exploit code.