CVE-2026-23326

NONE EPSS 0.02%
Обновлено 25 марта 2026
Linux
Параметр Значение
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: xsk: исправлено удаление узла фрагмента, чтобы предотвратить утечку буфера. После фиксации b692bf9a7543 («xsk: избавиться от xdp_buff_xsk::xskb_list_node»), поле list_node повторно используется как для списка пула xskb, так и для буфера свободный список, это приводит к утечке буфера, как описано ниже. xp_free() проверяет, находится ли буфер уже в списке свободных, используя list_empty(&xskb->list_node). Когда list_del() используется для удаления узла из списка пулов xskb он не инициализирует повторно указатели узлов.

Это означает, что list_empty() вернет false даже после того, как узел был удален, из-за чего xp_free() неправильно пропускает добавление буфера в бесплатный список. Исправьте это, используя list_del_init() вместо list_del() во всех фрагментах. обработка путей, это гарантирует повторную инициализацию узла списка после удаления, позволяя list_empty() работать правильно.

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: xsk: Fix fragment node deletion to prevent buffer leak After commit b692bf9a7543 ("xsk: Get rid of xdp_buff_xsk::xskb_list_node"), the list_node field is reused for both the xskb pool list and the buffer free list, this causes a buffer leak as described below. xp_free() checks if a buffer is already on the free list using list_empty(&xskb->list_node). When list_del() is used to remove a node from the xskb pool list, it doesn't reinitialize the node pointers. This means list_empty() will return false even after the node has been removed, causing xp_free() to incorrectly skip adding the buffer to the free list. Fix this by using list_del_init() instead of list_del() in all fragment handling paths, this ensures the list node is reinitialized after removal, allowing the list_empty() to work correctly.