CVE-2026-98906 in Linux
Сводка
по VulDB • 24.10.2026
В ядре Linux была устранена следующая уязвимость:
net: lan966x: восстановление состояния RX при сбое перезагрузки (reload)
Функция `lan966x_fdma_reload()` сохраняет резервные копии `rx->page_pool` и `rx->fdma` перед перераспределением ресурсов RX для нового MTU. Если выделение памяти завершается неудачей, путь восстановления возвращает эти поля в исходное состояние перед перезапуском RX.
Однако на пути загрузки также обновляются значения `rx->page_order` и `rx->max_mtu` до вызова функции `lan966x_fdma_rx_alloc()`. Эти поля не восстанавливаются при сбое, поэтому RX может быть перезапущен со старыми страницами, старым состоянием FDMA и старым пулом страниц, но с геометрией страниц, соответствующей неудачно выполненному новому MTU.
Это может привести к тому, что путь XDP будет объявлять размер кадра, выведенный из нового `page_order`, в то время как фактические страницы RX по-прежнему поступают из старого выделения памяти. Например, после неудачной попытки перезагрузки на jumbo MTU функция `xdp_init_buff()` может быть вызвана с размером кадра, превышающим размер восстановленных страниц RX.
Функция `lan966x_fdma_rx_alloc_page_pool()` также регистрирует вновь выделенный пул страниц для XDP RXQ каждого порта перед вызовом функции `fdma_alloc_coherent()`. Если функция `fdma_alloc_coherent()` завершается неудачей, новый пул страниц уничтожается, но путь отката (rollback) не восстанавливает регистрацию модели памяти per-port XDP RXQ.
Необходимо сохранять и восстанавливать значения `rx->page_order` и `rx->max_mtu`, а также восстанавливать старую регистрацию пула страниц для XDP RXQ каждого порта перед повторным запуском RX. Это обеспечивает согласованность восстановленного состояния RX после неудачной перезагрузки.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.