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

Сводка

по VulDB • 14.10.2026

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

wifi: mac80211: предотвращение срабатывания WARN в set_bitrate_mask, когда sdata отсутствует в драйвере

Функция ieee80211_set_bitrate_mask() проверяет, запущен ли интерфейс через ieee80211_sdata_running(), но не проверяет, присутствует ли интерфейс все еще в драйвере.

Когда sdata работает (running), но флаг IEEE80211_SDATA_IN_DRIVER не установлен, вызов достигает drv_set_bitrate_mask() в driver-ops.h, что приводит к:

wlan1: Failed check-sdata-in-driver check, flags: 0x0 WARNING: net/mac80211/driver-ops.h:884 at drv_set_bitrate_mask

Syzkaller вызывает это через ioctl wext SIOCSIWRATE. Call Trace показывает, что в wext-core.c происходит диспетчеризация ioctl функцией wext_ioctl_dispatch(), которая вызывает ioctl_standard_call() для SIOCSIWRATE, а та, в свою очередь, вызывает cfg80211_wext_siwrate() в wext-compat.c. Та формирует маску битрейта и вызывает rdev_set_bitrate_mask(), что в итоге приводит к ieee80211_set_bitrate_mask() в cfg.c. Интерфейс помечен как запущенный (SDATA_STATE_RUNNING), но флаги равны 0, поэтому check_sdata_in_driver() завершается ошибкой.

Когда интерфейс выгружается или когда ioctl wext выполняется во время поднятия интерфейса до того, как drv_add_interface() установит флаг IN_DRIVER, проверка на запуск проходит успешно, хотя IN_DRIVER сброшен.

Необходимо проверить наличие IEEE80211_SDATA_IN_DRIVER в ieee80211_set_bitrate_mask() перед вызовом драйвера и вернуть -ENETDOWN. Это предотвращает срабатывание WARN_ONCE в driver-ops.h и согласуется с другими операциями cfg.c, которые рано завершаются при отсутствии интерфейса в драйвере.

Это изменение безопасно, так как мьютекс wiphy удерживается в cfg80211_wext_siwrate() через guard(wiphy), а IN_DRIVER устанавливается/сбрасывается под блокировкой RTNL и путями wphy в drv_add_interface() и drv_remove_interface() в driver-ops.c, поэтому проверка защищена от состояний гонки (race conditions) при добавлении или удалении драйвера. Возврат -ENETDOWN соответствует ошибке, используемой другими путями для неактивных интерфейсов, и не требует новых блокировок.

[также добавить второй отчет syzbot]

If you want to get best quality of vulnerability data, you may have to visit VulDB.

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

Linux

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

25.09.2026

Раскрытие

15.10.2026

Модерация

принято

Вход

VDB-419873

EPSS

0.00220

KEV

Нет

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

Очень низкий

Источники

Do you know our Splunk app?

Download it now for free!