В skiplist — нарушения правил аллиасинга и освобождение живого узла

24.10.2026

В крейте skiplist опубликованы два бюллетеня, оба оценены в CVSS 4.0.

Нарушения аллиасинга

Четыре пути выполнения создают указатель, чьи права затем отзываются, после чего пишут через него. Miri фиксирует каждое как неопределённое поведение под моделями аллиасинга Tree Borrows и Stacked Borrows. Все четыре дефекта исправлены в 1.3.0.

Сравнитель не отвечает последовательно

Вторая проблема: OrderedSkipList, SkipSet и SkipMap могут освободить узел, который всё ещё связан, если реализация Comparator или Ord даёт разные ответы для одной пары значений в пределах одного мутирующего вызова. Последующий вызов читает освобождённую память. Также исправлено в 1.3.0.

Оригинал

RUSTSEC-2026-0408, RUSTSEC-2026-0409

Упоминаний: 0 · Просмотров: 4