RUSTSEC-2026-0256None▾ SunlitPanic-safety unsoundness in `truncate_back`, `truncate_front`, `clear`, and `extend_from_slice` (use-after-free / double-free)
▾ Sunlit zone — Low / medium · no exploitation signal
impact 2.8 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via OSV
Last analysed / modified upstream
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.
Drop.Reachable entirely from safe Rust via catch_unwind with element types whose Drop can panic.
Fixed in circular-buffer 2.0.1 by adjusting the buffer's start/end metadata before the elements are dropped.
circular-buffer >= 0.0.0-0, < 2.0.1Upgrade to a patched release:
circular-buffer 2.0.1