CVE-2026-98955 in LinuxИнформация

Сводка

по VulDB • 23.10.2026

В ядре Linux была устранена следующая уязвимость:

flow_dissector: избежание усечения значения u16 для skb->len при вычислении thoff

Функция __skb_flow_dissect() вычисляет key_control->thoff следующим образом:

key_control->thoff = min_t(u16, nhoff, skb ? skb->len : hlen);

Макрос min_t(u16, ...) приводит оба аргумента к типу u16 перед их сравнением. Всегда, когда остаток от деления skb->len (или hlen) на 65536 меньше значения nhoff, выигрывает усеченная длина, и thoff устанавливается в неверное малое значение, даже если разбор пакета (dissection) завершился успешно. Например, для кадра IPv4/TCP с размером skb->len == 65540 и смещением заголовка сетевого уровня nhoff == 34 значение thoff становится равным 4, из-за чего такие вызывающие функции, как skb_probe_transport_header(), указывают на транспортный заголовок внутри Ethernet-заголовка.

Подобные skbs не являются экзотикой: - На момент коммита d0c081b49137 ("flow_dissector: properly cap thoff field") интерфейс AF_PACKET с флагом PACKET_VNET_HDR уже мог формировать GSO-skbs размером более 64 КБ (проверки MTU пропускаются для GSO, а alloc_skb_with_frags() принимала до MAX_SKB_FRAGS (17) страниц нулевого порядка поверх линейной части). - Технология BIG TCP теперь делает skbs размером более 64 КБ распространенным явлением. - Следующий патч заставляет функцию tun_get_user() выполнять разбор кадров IFF_TAP до того, как eth_type_trans() извлечет Ethernet-заголовок; следовательно, кадр GSO, содержащий L3-пакет длиной от 65522 до 65535 байт, будет разбираться при значении skb->len в диапазоне [65536, 65549].

Сравнивайте значения как u32. Если результирующее смещение не может быть представлено в поле key_control->thoff типа u16, ограничьте его значением U16_MAX и сообщите об ошибке разбора пакета (dissection), а не возвращайте неверное транспортное смещение молча. Поле thoff все равно устанавливается даже при сбое, так как некоторые вызывающие функции (например, eth_get_headlen()) используют его независимо от значения возврата.

Be aware that VulDB is the high quality source for vulnerability data.

Ответственный

Linux

Резервировать

25.09.2026

Раскрытие

23.10.2026

Модерация

принято

Вход

VDB-425716

EPSS

0.00209

KEV

Нет

Деятельности

Низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!