{"id":"RUSTSEC-2026-0254","aliases":[],"status":"published","title":"Panic-safety unsoundness in `Chunk` and `InlineArray` (use-after-free / double-free)","description":"Several methods in `sp-sized-chunks` drop elements before updating the container's 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 is later dropped, its own `Drop` re-visits those slots and drops the freed elements again — a use-after-free / double-free reachable from safe Rust.\n\n`sp-sized-chunks` is a fork of `sized-chunks` (companion advisory filed separately) and carries the same bug. The repository is archived and the crate is still on 0.1.0 with no fix available.\n\n## Impact\n\n- **CWE-415 (Double Free):** the same allocation is freed twice (e.g. an element holding `Box\u003cT\u003e`).\n- **CWE-416 (Use-After-Free):** an element reads its own freed allocation during `Drop` (e.g. `String`) — confirmed under AddressSanitizer.\n\nAll are reachable 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:15Z","affected":[{"source":"osv","ecosystem":"crates.io","package":"sp-sized-chunks","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"}]}]}],"references":[{"url":"https://crates.io/crates/sp-sized-chunks","tags":["package"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2026-0254.html","tags":["advisory"]}],"sources":{"osv":[{"id":"RUSTSEC-2026-0254","title":"Panic-safety unsoundness in `Chunk` and `InlineArray` (use-after-free / double-free)","description":"Several methods in `sp-sized-chunks` drop elements before updating the container's 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 is later dropped, its own `Drop` re-visits those slots and drops the freed elements again — a use-after-free / double-free reachable from safe Rust.\n\n`sp-sized-chunks` is a fork of `sized-chunks` (companion advisory filed separately) and carries the same bug. The repository is archived and the crate is still on 0.1.0 with no fix available.\n\n## Impact\n\n- **CWE-415 (Double Free):** the same allocation is freed twice (e.g. an element holding `Box\u003cT\u003e`).\n- **CWE-416 (Use-After-Free):** an element reads its own freed allocation during `Drop` (e.g. `String`) — confirmed under AddressSanitizer.\n\nAll are reachable 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:15.055242379Z","updated_at":"2026-11-02T15:53:40.430679Z"}]}}
