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

Сводка

по VulDB • 10.08.2026

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

wifi: mwifiex: ограничение длины элементов информации (IE) события ассоциации uAP в буфере событий

Функция `mwifiex_process_uap_event()` обрабатывает событие `EVENT_UAP_STA_ASSOC`, извлекая элементы информации (IE), содержащиеся в запросе на (пере-)ассоциацию, которые прошивка копирует в структуру события:

```c sinfo->assoc_req_ies = &event->data[len];
len = (u8 *)sinfo->assoc_req_ies - (u8 *)&event->frame_control; sinfo->assoc_req_ies_len = le16_to_cpu(event->len) - (u16)len; ```

Значение `event->len` предоставляется аппаратной прошивкой устройства и никогда не проверяется на корректность, а операция вычитания также не защищена от переполнения. Указатель `assoc_req_ies` указывает внутрь массива фиксированного размера `adapter->event_body[MAX_EVENT_SIZE]`, который встроен в структуру `mwifiex_adapter`, выделяемую через `kmalloc()`.

На пути выполнения кода, когда включен режим ap_11n_enabled, функция `mwifiex_set_sta_ht_cap()` проходит по этим элементам IE с помощью функции `cfg80211_find_ie()`, цикл которой `for_each_element()` разыменовывает заголовок каждого элемента. Если значение `event->len`, сообщаемое прошивкой, превышает количество фактически полученных байтов, то `assoc_req_ies_len` описывает элементы IE, выходящие за пределы области `event_body`. В результате происходит чтение данных за пределами объекта в slab-аллокаторе адаптера (slab-out-of-bounds read), что фиксируется KASAN как «KASAN: slab-out-of-bounds in cfg80211_find_ie».

Если же значение `event->len` меньше размера заголовка, то результат целочисленного вычитания становится отрицательным. При сохранении этого значения в переменную типа `size_t` (`assoc_req_ies_len`) происходит переполнение (wrap-around), и оно интерпретируется как огромное положительное число. Это же некорректное значение длины передается функции `cfg80211_new_sta()`, поэтому даже при менее значительном завышении размера может произойти копирование устаревших данных из области `event_body` в уведомление `NL80211_CMD_NEW_STATION`.

Злонамеренное или неисправное устройство mwifiex (подключаемое по USB/SDIO/PCIe) может отправить такое событие, когда интерфейс находится в режиме точки доступа AP/uAP.

Необходимо проверять значение `event->len` перед его использованием: следует отклонить длину, которая приводит к переполнению заголовка или помещает элементы IE вне буфера `event_body[]`, куда было скопировано событие. Здесь поле `event->len` соответствует полю `struct mwifiex_assoc_event.len`, которое является внутренним полем полезной нагрузки данного события и не совпадает с длиной транспортного кадра, поэтому проверка выполняется именно в этом обработчике, а не на общем пути приема событий (`MWIFIEX_TYPE_EVENT receive path`), который видит только причину события и длину транспортного кадра.

Граница проверки устанавливается относительно `event_body[MAX_EVENT_SIZE]`, а не относительно фактически полученной длины данных, поскольку различные транспортные протоколы хранят событие по-разному (USB и SDIO оставляют 4-байтовый заголовок события в структуре `event_skb`, тогда как PCIe удаляет его с помощью функции `skb_pull`), при этом область `event_body` является единственным фиксированным буфером, куда все они копируют данные события. Данная проверка аналогична проверкам границ на пути приема пакетов (receive-path bounds checks), добавленным в коммите 119585281617 («wifi: mwifiex: Fix OOB and integer underflow when rx packets»).

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

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

Linux

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

30.07.2026

Раскрытие

10.08.2026

Модерация

принято

Вход

VDB-387697

EPSS

0.00000

KEV

Нет

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

Очень низкий

Источники

Do you need the next level of professionalism?

Upgrade your account now!