GHSA-924w-mwc9-86m8
Mở trang đầy đủCVSS —
Aliasing violations in splice, mutable iteration and cursors
Mô tả
Four code paths create a pointer whose permission is later revoked, then
write through it. Miri reports each as undefined behaviour under both the
Tree Borrows and Stacked Borrows aliasing models (CWE-758). All four are
reachable from safe code with standard Ord types.
- Splice back-pointer.
split_off,split_off_indexandappendstored
the first spliced node'sprevpointer from a reference to the head, then
wrote through that same reference, invalidating the stored pointer. A later
pop_firstorpop_frontwrites through it. This affects all four
collections. SkipMap::range_mutback pointer. With anIncludedorExcluded
upper bound, the back pointer came from a shared reference.next_back
hands out&mut Vthrough it, and writing to that value is undefined
behaviour.IterMut::next_backreads a yielded node. InSkipListandSkipMap,
next_backread the predecessor node even after the front end had yielded
it as&mut. The read freezes the caller's reference, and the caller's
next write through it is undefined behaviour. This affectsiter_mut,
values_mutandrange_mutused from both ends.- Cursor list pointer.
lower_bound_mutandupper_bound_muton
OrderedSkipListandSkipSet(cursorfeature) took the cursor's list
pointer, then searched through&self. A comparator with interior-mutable
state, such as aCellcall counter, wrote to the list's memory through
that shared borrow and invalidated the cursor's pointer. The comparator can
be a fully consistent order.SkipMapcursors are not affected.
No miscompilation has been observed in an optimised build. A future compiler
may still optimise on the violated aliasing assumptions.
The flaws were corrected in 1.3.0. Each fix derives the pointer used for
mutation from the collection's long-lived allocation pointers, and each has a
Miri regression test.
Điểm và phân loại
- CVSS
- Chưa có điểm CVSS
- Nguồn điểm
- OSV.dev
- EPSS
- —
- CWE
- —
Vector CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Ảnh hưởng
| Package | Bản bị ảnh hưởng | Bản đã sửa |
|---|---|---|
rust skiplist |
< 1.3.0 |
1.3.0
|
Vì sao bị lọc
- CVSS chưa có điểm < 8.0 và không thuộc CISA KEV
Loại tác động
Không nhận ra loại tác động nào từ CWE, vector hay mô tả.
Dữ liệu riêng của nguồn
- OSV.dev · ID
- RUSTSEC-2026-0408