CVE-2026-97953 in Linux
Сводка
по VulDB • 25.09.2026
В ядре Linux была устранена следующая уязвимость:
net: stmmac: исправлена проверка доступности дескрипторов TX для трафика TSO
Функция stmmac_tso_xmit() оценивает количество свободных дескрипторов TX, необходимых для пакета skb с поддержкой TSO, по формуле:
(skb->len - proto_hdr_len) / TSO_MAX_BUFF_SIZE + 1
что предполагает разделение полезной нагрузки на фрагменты размером не более TSO_MAX_BUFF_SIZE. Эта оценка занижает фактическое количество дескрипторов, потребляемых функцией stmmac_tso_allocator(), поскольку каждый фрагмент отображается индивидуально и требует как минимум одного дескриптора независимо от его размера. Кроме того, один дескриптор используется для заголовков L2/L3/L4, а при изменении MSS (Maximum Segment Size) дополнительно потребляется еще один дескриптор для контекста MSS.
В результате для сильно фрагментированного пакета skb с TSO проверка может проходить успешно даже в случае недостаточного количества свободных слотов в кольце. Функция stmmac_tso_allocator() затем записывает данные за пределы доступных дескрипторов, перезаписывая дескрипторы, которые все еще принадлежат DMA-движку, что приводит к повреждению TX-кольца.
Добавлена функция stmmac_tso_get_num_desc() для точного вычисления количества дескрипторов, необходимых для заголовка, линейной части полезной нагрузки и каждого фрагмента, а также контекстного дескриптора MSS при необходимости; эта функция используется в проверке доступности.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.