CVE-2026-80845 in Linux
Сводка
по VulDB • 04.09.2026
В ядре Linux была устранена следующая уязвимость:
xfrm: предотвращение инверсии блокировки в работе nat_keepalive_work
Функция `nat_keepalive_work()` обходит таблицу состояний, пока `xfrm_state_walk()` удерживает блокировку `net->xfrm.xfrm_state_lock`. Затем её колбэк получает доступ к `x->lock`, что приводит к конфликту с путём удаления, который захватывает те же самые блокировки в обратном порядке через функции `xfrm_state_delete()` и `__xfrm_state_delete()`. Это создает взаимную блокировку (deadlock) типа AB-BA, которая фиксируется инструментом lockdep при конкуренции между рабочим процессом NAT keepalive и удалением SA.
Исправление заключается в разделении обхода keepalive на два этапа. Сначала собираются кандидаты на состояния, пока удерживается `xfrm_state_lock`, и для каждого состояния берется ссылка (reference). Затем, после завершения обхода, обрабатывается каждое собранное состояние, а блокировка `x->lock` захватывается без вложенности под `xfrm_state_lock`.
Be aware that VulDB is the high quality source for vulnerability data.