Email me

Rust advisories / ringbuf

VulnerabilityRUSTSEC-2026-0293 · ringbuf

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

Short answerA security vulnerability in the ringbuf crate: Double free / use-after-free in `Consumer::skip` and `Consumer::clear` when an element's `Drop` panics. No severity score was published. Fixed in 0.5.2: update to a fixed version.

Crateringbuf
TypeVulnerability (memory-corruption)
Affected versionsBefore 0.5.2.
Fixed in0.5.2
Severitynot scored
Published2026-09-21
Last changed2026-09-21
Also known asnone
Affected functionsringbuf::traits::consumer::Consumer::clear, ringbuf::traits::consumer::Consumer::skip

What to do

  1. See which version you have: cargo tree -i ringbuf (it also shows which of your dependencies pulls it in).
  2. Update within your version requirement: cargo update -p ringbuf. If the fix is a newer major or minor than your requirement allows, raise it in Cargo.toml (for example ringbuf = "0.5.2") or update the dependency that pulls it in.
  3. Check again with cargo audit, or paste your Cargo.lock into our Cargo.toml checker.

Details from the advisory

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).

References

From the RustSec Advisory Database (CC0-1.0) via the OSV export, downloaded Oct 24, 2026. Severity score computed from the published CVSS vector.

Up next

Are you affected?Check your whole dependency treePaste Cargo.lock: every advisory, for your exact versions.Read it next →

Did this answer your question?

Get the receipts by email.

What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.

No spam, never sold. Every email has a one-click unsubscribe.

Popular in the shop

All 124 tools →

Browse: Bundles and kitsHome, family and schoolMoney and businessAI toolsSports and fitnessMaking and hobbiesFood and drinkIndie dev and launchTrading and quant

Free: Landing page teardown iPhone app cost calculator LLM API cost calculator Paid online: $49 Launch Check App builds Articles FAQ