rustsec-2025-0105
Vulnerability from osv_rustsec
Published
2025-10-21 12:00
Modified
2025-10-28 06:02
Summary
Uninitialized memory exposure in create_ring_buffer
Details
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.
{
"affected": [
{
"database_specific": {
"categories": [
"memory-exposure"
],
"cvss": null,
"informational": "unsound"
},
"ecosystem_specific": {
"affected_functions": null,
"affects": {
"arch": [],
"functions": [
"direct_ring_buffer::create_ring_buffer"
],
"os": []
}
},
"package": {
"ecosystem": "crates.io",
"name": "direct_ring_buffer",
"purl": "pkg:cargo/direct_ring_buffer"
},
"ranges": [
{
"events": [
{
"introduced": "0.0.0-0"
},
{
"fixed": "0.2.2"
}
],
"type": "SEMVER"
}
],
"versions": []
}
],
"aliases": [
"GHSA-fp5x-7m4q-449f"
],
"database_specific": {
"license": "CC0-1.0"
},
"details": "The safe function `create_ring_buffer` allocates a buffer using `Vec::with_capacity` followed by `set_len`, creating a `Box\u003c[T]\u003e` containing uninitialized memory.\n\nThis leads to undefined behavior when functions like `write_slices` create typed slices (e.g., `\u0026mut [bool]`) over the uninitialized memory, violating Rust\u0027s validity invariants. The issue has been confirmed using Miri.\n\nFixed 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.",
"id": "RUSTSEC-2025-0105",
"modified": "2025-10-28T06:02:18Z",
"published": "2025-10-21T12:00:00Z",
"references": [
{
"type": "PACKAGE",
"url": "https://crates.io/crates/direct_ring_buffer"
},
{
"type": "ADVISORY",
"url": "https://rustsec.org/advisories/RUSTSEC-2025-0105.html"
},
{
"type": "REPORT",
"url": "https://github.com/ain1084/direct_ring_buffer/issues/1"
},
{
"type": "WEB",
"url": "https://github.com/ain1084/direct_ring_buffer/pull/2"
}
],
"related": [],
"severity": [],
"summary": "Uninitialized memory exposure in create_ring_buffer"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…