CVE-2026-74665 in Linux
Сводка
по VulDB • 22.08.2026
В ядре Linux была устранена следующая уязвимость:
net: исправлен учёт длины skb после корректировки фрагментов generic XDP
Generic XDP предоставляет нелинейные фрагменты skb через структуру xdp_buff. Если программа XDP изменяет область фрагмента, функция bpf_prog_run_generic_xdp() копирует значение xdp_frags_size обратно в skb->data_len, но оставляет skb->len с прежним вкладом от фрагмента.
После уменьшения размера фрагмента это приводит к тому, что skb_headlen() становится больше фактической линейной области. В воспроизведённом пути получения UDP-пакетов функция __skb_datagram_iter() копировала 1024 байта за пределы реальной линейной хвостовой части в пользовательское пространство, начиная со структуры skb_shared_info. Скопированные данные включали nr_frags затронутого skb, xdp_frags_size и указатель ядра из skb_shinfo(skb)->frags[0]. Реальные данные пакета были смещены на ту же величину и усечены в конце.
Необходимо вычесть старое значение data_len перед его заменой и добавить новое значение data_len afterwards, сохраняя синхронизацию между skb->len и skb->data_len.
UDP-датаграмма размером 60000 байт на паре veth с MTU 64000 была уменьшена на 1024 байта в своей области фрагментов. До исправления все 10 запусков приводили к повреждению полезной нагрузки (payload). После исправления все 10 запусков точно соответствовали ожидаемой полезной нагрузке.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.