GHSA-3632-54q8-m96x: arenavec has multiple memory corruption vulnerabilities in safe APIs
N/A
CVSS Score
Basic Information
CVE ID
-
GHSA ID
EPSS Score
-
CWE
Published
9/2/2025
Updated
9/2/2025
KEV Status
No
Technology
Rust
Technical Details
CVSS Vector
-
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| arenavec | rust | <= 0.1.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The analysis identified multiple memory corruption vulnerabilities in the arenavec crate, stemming from three distinct issues reported on GitHub. Since no patches are available, the analysis is based on the detailed bug reports, which include proofs-of-concept and point to the exact sources of the vulnerabilities.
The root causes are:
- Improper Trust (
CWE-822): TheAllocHandletrait is not declaredunsafe, yet the library's internal code makes unsafe assumptions about the validity of pointers returned by user implementations of this trait. This leads to an untrusted pointer dereference inSliceVec::push. - Heap Buffer Overflow (
CWE-122): Theallocate_innerfunction, called bySliceVec::reserve, can fail to allocate memory while still increasing the vector's capacity. This causesSliceVec::pushto write past the buffer's boundary. - Double Free (
CWE-415): TheSliceVec::split_offfunction incorrectly handles ownership when splitting at index 0, leading to twoSliceVecinstances pointing to the same data. When both are dropped, the data is freed twice.
The identified vulnerable functions are the public APIs that trigger these conditions (push, reserve, split_off) and the underlying trait methods and private functions where the flaws reside (AllocHandle::allocate, AllocHandle::allocate_or_extend, allocate_inner). Any of these functions could appear in a runtime profile during exploitation.