Every CVE Search/ Get API key

RUSTSEC-2026-0252

Panic-safety unsoundness in `SplitVec::extend_from_slice` (uninitialized read)

No scoreFix available

SplitVec::extend_from_slice increments the logical length self.len before cloning the incoming elements into the reserved slots. If an element's Clone panics mid-fill, unwinding leaves self.len counting slots that were never initialized. A later safe read (get, indexing, iter) then reads one of those uninitialized slots.

This is reachable from safe Rust — a read of uninitialized memory (CWE-908). It is not a double-free: SplitVec has no manual Drop and its elements live in a standard Vec, so the defect is a read, not a free.

Impact

A safe read after the panic returns a value built from uninitialized bytes. For a heap-owning element type such as String, the resulting value has garbage length/pointer fields.

Confirmed under Miri. AddressSanitizer stays silent for this class, since the uninitialized bytes are consumed as a non-dereferenced field rather than an invalid load or free.

Fix

Fixed in orx-split-vec 4.0.0, which no longer commits the length before the elements are cloned.

What each source reports

OSV No score

Panic-safety unsoundness in `SplitVec::extend_from_slice` (uninitialized read)

SplitVec::extend_from_slice increments the logical length self.len before cloning the incoming elements into the reserved slots. If an element's Clone panics mid-fill, unwinding leaves self.len counting slots that were never initialized. A later safe read (get, indexing, iter) then reads one of those uninitialized slots.

This is reachable from safe Rust — a read of uninitialized memory (CWE-908). It is not a double-free: SplitVec has no manual Drop and its elements live in a standard Vec, so the defect is a read, not a free.

Impact

A safe read after the panic returns a value built from uninitialized bytes. For a heap-owning element type such as String, the resulting value has garbage length/pointer fields.

Confirmed under Miri. AddressSanitizer stays silent for this class, since the uninitialized bytes are consumed as a non-dereferenced field rather than an invalid load or free.

Fix

Fixed in orx-split-vec 4.0.0, which no longer commits the length before the elements are cloned.

Record
RUSTSEC-2026-0252
Updated
2026-11-02

Affected packages

Affected packages
PackageAffectedFixed
orx-split-vec
crates.io
0.0.0-0 up to 4.0.0
4.0.0

History

History
RecordedChangedSources
first indexedOSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

RUSTSEC-2026-0252 is a vulnerability with no CVSS score yet in orx-split-vec, published August 11, 2026. No source lists public exploit code. Fixed in orx-split-vec 4.0.0.

References

MoveEnter Open