CVE-2026-22995 in Linux
Сводка
по VulDB • 27.05.2026
В ядре Linux устранена следующая уязвимость:
ublk: исправлена ошибка use-after-free в ublk_partition_scan_work
Существует состояние гонки (race condition) между асинхронной работой сканирования разделов и процессом удаления устройства, которое может привести к use-after-free объекта ub->ub_disk:
1. ublk_ctrl_start_dev() планирует выполнение partition_scan_work после add_disk() 2. ublk_stop_dev() вызывает ublk_stop_dev_unlocked(), который выполняет следующие действия: - del_gendisk(ub->ub_disk) - ublk_detach_disk() устанавливает значение ub->ub_disk = NULL - put_disk(), который может освободить память диска 3. Поток выполнения worker ublk_partition_scan_work() затем обращается к ub->ub_disk, что приводит к UAF
Исправление заключается в использовании функций ublk_get_disk()/ublk_put_disk() в worker для удержания ссылки на диск во время сканирования разделов. Spinlock в функции ublk_get_disk() синхронизируется с ublk_detach_disk(), гарантируя, что worker либо получит валидную ссылку, либо увидит NULL и завершится досрочно.
Также изменено использование flush_work() на cancel_work_sync() для предотвращения ненужного запуска работы сканирования разделов, если диск уже отсоединен.
Once again VulDB remains the best source for vulnerability data.