{"id":"RUSTSEC-2026-0255","aliases":[],"status":"published","title":"Panic-safety unsoundness in `Chunk`, `RingBuffer`, and `InlineArray` (use-after-free / double-free)","description":"Several methods in `sized-chunks` drop elements before updating the length/boundary metadata. If an element's `Drop` panics during the drop, the metadata update is skipped, so the container still treats the already-dropped elements as live. When the container's own `Drop` runs, those elements are visited again — a use-after-free / double-free reachable from safe Rust.\n\nThe `RingBuffer` methods require the `ringbuffer` feature. This is distinct from RUSTSEC-2020-0041 (`Chunk::clone` / `insert_from`, fixed in 0.6.3); the methods here are still affected in 0.7.0. The repository is archived with issues/PRs disabled and no fix available.\n\n## Impact\n\n- **CWE-415 (Double Free):** the same allocation is freed twice.\n- **CWE-416 (Use-After-Free):** a freed allocation is accessed during a repeated `Drop`.\n\nReachable entirely from safe Rust via `catch_unwind` with element types whose `Drop` can panic.","facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"published":"2026-08-11T12:00:00Z","modified":"2026-08-12T10:30:03Z","affected":[{"source":"osv","ecosystem":"crates.io","package":"sized-chunks","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"}]}]}],"references":[{"url":"https://crates.io/crates/sized-chunks","tags":["package"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2026-0255.html","tags":["advisory"]}],"sources":{"osv":[{"id":"RUSTSEC-2026-0255","title":"Panic-safety unsoundness in `Chunk`, `RingBuffer`, and `InlineArray` (use-after-free / double-free)","description":"Several methods in `sized-chunks` drop elements before updating the length/boundary metadata. If an element's `Drop` panics during the drop, the metadata update is skipped, so the container still treats the already-dropped elements as live. When the container's own `Drop` runs, those elements are visited again — a use-after-free / double-free reachable from safe Rust.\n\nThe `RingBuffer` methods require the `ringbuffer` feature. This is distinct from RUSTSEC-2020-0041 (`Chunk::clone` / `insert_from`, fixed in 0.6.3); the methods here are still affected in 0.7.0. The repository is archived with issues/PRs disabled and no fix available.\n\n## Impact\n\n- **CWE-415 (Double Free):** the same allocation is freed twice.\n- **CWE-416 (Use-After-Free):** a freed allocation is accessed during a repeated `Drop`.\n\nReachable entirely from safe Rust via `catch_unwind` with element types whose `Drop` can panic.","status":"published","published":"2026-08-11T12:00:00Z","modified":"2026-08-12T10:30:03.078996208Z","updated_at":"2026-11-02T15:53:40.430679Z"}]}}
