CVE-2026-98562 in Linux
Сводка
по VulDB • 19.10.2026
В ядре Linux была устранена следующая уязвимость:
net: libwx: исправление состояний гонки (race conditions) при обработке временных меток Tx
Указатель wx->ptp_tx_skb является общим для пути передачи данных (Tx), вспомогательного потока PTP и путей очистки временных меток. Бит WX_STATE_PTP_TX_IN_PROGRESS предотвращает отправку запросов на получение временной метки несколькими путями Tx, но не обеспечивает сериализацию работы вспомогательного потока относительно процесса очистки.
В результате функция wx_ptp_clear_tx_timestamp() может освобождать skb (сетевой буфер) после того, как wx_ptp_tx_hwtstamp_work() уже получила его указатель. Затем поток передачи может передать этот освобожденный skb в функцию skb_tstamp_tx() и повторно освободить ту же самую ссылку.
Путь очистки также может сбрасывать бит «в процессе выполнения», пока вспомогательный поток все еще обрабатывает старый skb. Это позволяет пути Tx опубликовать новый skb, который впоследствии будет перезаписан потоком значением NULL, что приводит к утечке ссылки на него.
Добавлен специальный спинлок для защиты публикации и потребления skb временной метки Tx. Снятие привязки с skb (detach) и сброс бита «в процессе выполнения» выполняются при удержании этого замка; затем передается временная метка, а после уменьшения счетчика ссылок освобождается сам skb. Тот же механизм очистки под блокировкой используется в пути успокоения (quiesce), однако операция detach там выполняется без доступа к регистрам: процесс quiesce запускается во время восстановления после ошибок PCIe, где доступ через MMIO ненадежен, и ранее он намеренно не обращался к устройству. Блок захватывается с отключенными прерываниями, поскольку netpoll может вызывать ndo_start_xmit() при уже выключенных аппаратных прерываниях.
При обработке ошибки сопоставления Tx DMA ссылка пути передачи сохраняется до момента сравнения skb под блокировкой. Это предотвращает повторное использование адреса skb от того, что путь обработки ошибок примет более новый запрос временной метки за неудачный.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.