В ядре Linux устранена следующая уязвимость:
smb: client: исправлено использование после освобождения в cifs_try_adding_channels().
cifs_try_adding_channels() принимает временную ссылку на интерфейс
перед удалением iface_lock. Если cifs_ses_add_channel() завершается неудачей, он удаляется.
эту ссылку, а затем увеличивает iface->weight_fulfilled. Одновременное обновление списка интерфейсов может удалить ссылку на список, пока
создание канала в процессе.
В этом случае путь отказа
kref_put() освобождает последнюю ссылку и освобождает iface. Обновление
Weight_fulfilled после этого обращается к освобожденной памяти. Увеличьте вес_fulfilled перед удалением временной ссылки.
сохранение активности iface для окончательного доступа.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: smb: client: Fix use-after-free in cifs_try_adding_channels() cifs_try_adding_channels() takes a temporary reference to an interface before dropping iface_lock. If cifs_ses_add_channel() fails, it drops that reference and then increments iface->weight_fulfilled. A concurrent interface list refresh can remove the list reference while channel creation is in progress. In that case, the failure-path kref_put() releases the last reference and frees iface. Updating weight_fulfilled afterward then accesses freed memory. Increment weight_fulfilled before dropping the temporary reference, keeping iface alive for the final access.
Характеристики атаки
Последствия
Строка CVSS v3.1