RUSTSEC-2025-0166 json
Multiple soundness issues in `stackvector`
published last yr. modified 4mo ago
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- —
- no score, EPSS covers CVEs only
- public exploits
- 0
- none known
Summary
Affected versions of `stackvector` contained multiple soundness issues that could allow safe Rust code to trigger undefined behavior.
One issue was that `StackVec::length` was exposed as a public field. Safe Rust code could set `length` to a value larger than the backing array capacity. Other safe methods, including `remove`, `pop`, and `truncate`, relied on `length` before performing unsafe pointer operations (`ptr::read`, `ptr::copy`, `offset`/`add`). If `length` was corrupted by safe code, these methods could perform out-of-bounds pointer arithmetic, reads, writes, or copies.
The upstream maintainer also identified additional soundness issues, including the use of `mem::uninitialized` in `StackVec::from_vec_unchecked`, which was reachable through `from_vec`, and Miri violations related to `MaybeUninit` usage.
Version `2.0.0` was released to fix the known soundness issues.
Patch / fix
- crates.io stackvector 2.0.0
Is RUSTSEC-2025-0166 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerAffected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | stackvector | >=0.0.0-0, <2.0.0 |
2.0.0 |
References
-
github.com
/Alexhuszagh/rust-stackvector/pull/6
web
-
github.com
/Alexhuszagh/rust-stackvector/commit/02b947afdeeb1be95ec0888354aa76afdd9d0357
web
-
crates.io
/crates/stackvector
package
-
rustsec.org
/advisories/RUSTSEC-2025-0166.html
advisory
-
github.com
/Alexhuszagh/rust-stackvector/issues/3
report
-
github.com
/Alexhuszagh/rust-stackvector/issues/5
report
Sources
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.