Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
🦀 crates.io
Not in CISA KEV

GHSA-fp5x-7m4q-449f direct_ring_buffer

Fix: ain1084/direct_ring_buffer#2

GHSA-fp5x-7m4q-449f is a security vulnerability in direct_ring_buffer. A fix is available for direct_ring_buffer — see the affected versions and patch details below.

Direct Ring Buffer has uninitialized memory exposure in create_ring_buffer

Also known asRUSTSEC-2025-0105
Published
Oct 21, 2025
Updated
Oct 28, 2025
Affected
1 pkg
Patched
1 / 1
Exploits
None indexed
Exploitation data as of Oct 28, 2025 · OSV.dev, FIRST.org (EPSS)

Real-World Exposure

1 pkg affected
🦀direct_ring_buffer

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects crates.io packages — download data is not available via public APIs for these ecosystems.

Description

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 Packages

1 total 1 fixed
EcosystemPackageVulnerable rangeFix
🦀crates.iodirect_ring_bufferall versions0.2.2cargo update -p direct_ring_buffer --precise 0.2.2

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for direct_ring_buffer, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update direct_ring_buffer to 0.2.2 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-fp5x-7m4q-449f is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

  4. How O3 protects you

    O3 Security's impact-aware SCA analyses which vulnerable code paths your application actually calls, so a match like GHSA-fp5x-7m4q-449f can be triaged on real exposure rather than presence alone.

Tailored to GHSA-fp5x-7m4q-449f. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

Frequently Asked Questions

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.
O3 Security · Impact-Aware SCA

Is GHSA-fp5x-7m4q-449f in your dependencies?

O3 Security finds GHSA-fp5x-7m4q-449f across crates.io dependencies, including transitive ones, and its impact-aware SCA ranks findings by whether your code actually calls the vulnerable path.

GHSA-fp5x-7m4q-449f: direct_ring_buffer | O3 Security