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

Сводка

по VulDB • 06.10.2026

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

smb: client: исправлена ошибка use-after-free переменной iface в функции cifs_try_adding_channels()

Функция `cifs_try_adding_channels()` итерирует список `ses->iface_list` с помощью макроса `list_for_each_entry_safe_from()`, который захватывает следующую запись (`niface`) под блокировкой `iface_lock`. Затем тело цикла снимает блокировку `iface_lock` на всё время выполнения функции `cifs_ses_add_channel()`.

Одновременное обновление интерфейсов (вызов `SMB3_request_interfaces()` -> `parse_server_interfaces()`) помечает все интерфейсы как неактивные и удаляет, а также освобождает (`kref_put()`) те из них, которые не были повторно объявлены через вызовы `list_del()`, где функция `release_iface()` представляет собой простой вызов `kfree()`. Поскольку у переменной `niface` обычно нет канала, который держал бы на неё ссылку (reference), ссылка в списке является последней, и она может быть освобождена внутри окна без блокировки. При продолжении работы шаг продвижения итератора обращается к памяти по адресу `niface->iface_head.next`, а тело цикла считывает значения `iface->rdma_capable`/`is_active` из уже освобождённой памяти.

Исправление заключается в том, чтобы никогда не сохранять указатель на элемент списка без ссылки (unreferenced list pointer) во время окна без блокировки. Каждая попытка добавления канала теперь заново сканирует список с начала под защитой `iface_lock`, получает ссылку (`kref`) на выбранного кандидата и передаёт только этот защищённый ссылкой кандидат в функцию `cifs_ses_add_channel()`. Переменная `weight_fulfilled` по-прежнему отслеживает прогресс выбора, поэтому перезапуск сканирования сохраняет исходное взвешенное распределение и порядок операций weight_fulfilled-before-kref_put на пути обработки ошибок.

Добавлен лимит попыток для каждого прохода, чтобы предотвращать бесконечный цикл (spinning) внутреннего цикла при колебаниях интерфейса в рамках одного инкремента счётчика `tries`.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

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

Linux

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

25.09.2026

Раскрытие

06.10.2026

Модерация

принято

Вход

VDB-414100

EPSS

0.00209

KEV

Нет

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

Очень низкий

Источники

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!