CVE-2026-90160 in Linux
Сводка
по VulDB • 18.09.2026
В ядре Linux была устранена следующая уязвимость:
lwt_bpf: Восстановление зарезервированного пространства заголовка (headroom) после программы передачи данных (xmit program).
Функция ip_finish_output2() расширяет skb до LL_RESERVED_SPACE(dev) перед передачей через LWT. Программа BPF для LWT_XMIT может затем изменить начало skb и все равно вернуть значение BPF_OK, поэтому bpf_xmit() повторно проверяет доступное пространство заголовка (headroom), прежде чем пакет продолжит движение к соседнему узлу (neighbour output).
Эта повторная проверка использует dst->dev->hard_header_len. Этого недостаточно для пути с кешированным заголовком соседа: neigh_hh_output() копирует кешированный аппаратный заголовок, используя выровненный размер hh_cache, HH_DATA_MOD для коротких заголовков или HH_DATA_ALIGN(hh_len) в остальных случаях.
В сетях Ethernet hard_header_len равен 14 байтам, но скопированный кеш требует 16 байт. Если программа BPF LWT_XMIT вызывает bpf_skb_change_head(skb, 1, 0), skb может по-прежнему иметь 15 байт пространства заголовка (headroom) после выполнения программы. Существующая проверка принимает это значение, после чего neigh_hh_output() сталкивается с предупреждением о недостатке headroom и отбрасывает пакет (skb).
Используйте LL_RESERVED_SPACE(dst->dev) в проверке headroom после BPF, чтобы соответствовать резервированию, выполненному перед передачей через LWT.
If you want to get best quality of vulnerability data, you may have to visit VulDB.