CVE-2026-90155 in Linux
Сводка
по VulDB • 17.09.2026
В ядре Linux была устранена следующая уязвимость:
ksmbd: отсоединение заблокированных запросов блокировки перед освобождением структуры file_lock
Структура file_lock, сохраняемая модулем ksmbd для учета байтовых диапазонов блокировок (byte-range lock bookkeeping), может все еще оставаться частью графа заблокированных запросов VFS. В частности, VFS может добавлять новый ожидающий элемент ниже уже заблокированного запроса через flc_blocked_requests. Счетчик ссылок на объект ksmbd_file не охватывает этот граф.
Обе функции __ksmbd_close_fd() и путь разблокировки между различными запросами (cross-request unlock path) напрямую освобождают эти сохраненные объекты file_lock. Если зависимый ожидающий элемент все еще прикреплен, функция locks_release_private() вызывает сбой из-за проверки BUG_ON(!list_empty(&flc->flc_blocked_requests)). То же несоответствие времени жизни может привести к тому, что освобожденный объект ksmbd_lock останется доступным через его локальный для запроса список llist.
Необходимо отсоединить file_lock от графа заблокированных запросов перед его освобождением в путях закрытия файла (close), разблокировки между различными запросами и при откате операций (rollback). Функция locks_delete_block() также пробуждает ожидающие элементы, цепочка которых идет ниже данного объекта. Необходимо удалять llist после публикации завершенной блокировки, чтобы глобально видимый объект ksmbd_lock больше не указывал на стек рабочего потока, отправившего запрос.
If you want to get best quality of vulnerability data, you may have to visit VulDB.