RUSTSEC-2026-0293 Double free / use-after-free in `Consumer::skip` and `Consumer::clear` when an element's `Drop` panics

Not scored Published

A double free or use-after-free vulnerability in the Rust ring buffer library allows attackers to cause crashes or potentially execute code if element drop panics.

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

What is RUSTSEC-2026-0293?

RUSTSEC-2026-0293 is an use after free vulnerability in ringbuf, published on 21 Sep 2026.

Official description

Consumer::skip() and Consumer::clear() are not panic-safe. They drop the consumed elements in place and only afterwards call advance_read_index() to move the ring buffer's read index past them. If an element's Drop panics mid-loop, advance_read_index() is never reached, so the read index still points at the already-dropped elements. When the ring buffer is later dropped, its destructor re-visits those slots and drops the same elements a second time — a double free (CWE-415) / use-after-free (CWE-416) reachable from safe Rust, confirmed under AddressSanitizer.

Consumer::clear() delegates to Consumer::skip(self.len()), so both share the same root cause and the same fix.

Mitigation

Update to 0.5.2 or later (fixed in agerasev/ringbuf#60).

Which versions are affected by RUSTSEC-2026-0293?

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

PackageAffectedFixed in
ringbuf crates.ioFrom 0.0.0-00.5.2

How do I fix RUSTSEC-2026-0293?

Upgrade ringbuf to 0.5.2 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-0293 being exploited?

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

Sources

Is RUSTSEC-2026-0293 in your software?

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

Check your SBOMs for free