Rust advisories / direct_ring_buffer
Unsound LowRUSTSEC-2025-0105 · direct_ring_buffer
RUSTSEC-2025-0105: Uninitialized memory exposure in create_ring_buffer
Short answerdirect_ring_buffer has an API that can cause undefined behaviour from safe code: Uninitialized memory exposure in create_ring_buffer. Fixed in 0.2.2.
| Crate | direct_ring_buffer |
|---|---|
| Type | Unsound (memory-exposure) |
| Affected versions | Before 0.2.2. |
| Fixed in | 0.2.2 |
| Severity | Low (GitHub rating) |
| Published | 2025-10-21 |
| Last changed | 2025-10-28 |
| Also known as | GHSA-fp5x-7m4q-449f |
| Affected functions | direct_ring_buffer::create_ring_buffer |
What to do
- See which version you have:
cargo tree -i direct_ring_buffer(it also shows which of your dependencies pulls it in). - Update within your version requirement:
cargo update -p direct_ring_buffer. If the fix is a newer major or minor than your requirement allows, raise it in Cargo.toml (for exampledirect_ring_buffer = "0.2.2") or update the dependency that pulls it in. - Check again with
cargo audit, or paste your Cargo.lock into our Cargo.toml checker.
Details from the advisory
The safe function create_ring_buffer allocates a buffer using Vec::with_capacity followed by set_len, creating a Box<[T]> containing uninitialized memory.
This leads to undefined behavior when functions like write_slices create typed slices (e.g., &mut [bool]) over the uninitialized memory, violating Rust's validity invariants. The issue has been confirmed using Miri.
Fixed in version 0.2.2 by using resize_with to properly initialize the buffer with T::default(), adding a T: Default bound to ensure sound initialization.
References
- Package: crates.io/crates/direct_ring_buffer
- Advisory: rustsec.org/advisories/RUSTSEC-2025-0105.html
- Report: github.com/ain1084/direct_ring_buffer/issues/1
- Web: github.com/ain1084/direct_ring_buffer/pull/2
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 →Also worth your time
Did this answer your question?