RUSTSEC-2026-0252 Panic-safety unsoundness in `SplitVec::extend_from_slice` (uninitialized read)
A panic during cloning in SplitVec::extend_from_slice leaves uninitialized memory accessible, allowing attackers to read garbage data or cause crashes.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Not stated
- Victim action needed
- Not needed
- Fix
- Available
What is RUSTSEC-2026-0252?
RUSTSEC-2026-0252 is a memory corruption vulnerability in orx-split-vec, published on 11 Aug 2026.
Official description
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.
Which versions are affected by RUSTSEC-2026-0252?
1 open source package ship an affected version, including orx-split-vec.
| Package | Affected | Fixed in |
|---|---|---|
orx-split-vec crates.io | From 0.0.0-0 | 4.0.0 |
How do I fix RUSTSEC-2026-0252?
Upgrade orx-split-vec to 4.0.0 or later.
Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.
Is RUSTSEC-2026-0252 being exploited?
There is no known exploitation of RUSTSEC-2026-0252 in the wild and no public exploit code.