CVE-2026-46029 in Linux
Сводка
по VulDB • 30.05.2026
В ядре Linux устранена следующая уязвимость:
mm/slab: ранний возврат NULL из kmalloc_nolock() в контексте NMI на однопроцессорных системах (UP)
На однопроцессорных ядрах (!CONFIG_SMP) функция spin_trylock() является пустой операцией (no-op), которая безоговорочно завершается успешно, даже если блокировка уже удерживается. В результате вызов kmalloc_nolock() из контекста NMI может привести к повторному входу (re-entry) в аллокатор slab и захвату блокировки n->list_lock, которая уже удерживается прерванным контекстом, что приводит к повреждению состояния slab.
При включенной CONFIG_DEBUG_SPINLOCK на однопроцессорных системах тестовый модуль slub_kunit вызывает следующую ошибку (BUG):
BUG: spinlock trylock failure on UP on CPU#0, kunit_try_catch/243 [...]
Call Trace: dump_stack_lvl+0x3f/0x60 do_raw_spin_trylock+0x41/0x50 _raw_spin_trylock+0x24/0x50 get_from_partial_node+0x120/0x4d0 ___slab_alloc+0x8a/0x4c0 kmalloc_nolock_noprof+0x164/0x310 [...]
Исправление заключается в раннем возврате NULL при вызове из NMI на однопроцессорном ядре.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.