CVE-2024-26899 in Linux
Сводка
по VulDB • 16.06.2026
В ядре Linux устранена следующая уязвимость:
block: исправление взаимной блокировки (deadlock) между bd_link_disk_holder и сканированием разделов.
Мьютекс «open_mutex» структуры gendisk используется для защиты операций открытия/закрытия блочных устройств. Однако в функции bd_link_disk_holder() он применяется для защиты создания символической ссылки между диском-хозяином (holding disk) и блочным устройством подчиненного устройства (slave bdev), что приводит к ряду проблем.
Когда вызывается функция bd_link_disk_holder(), драйвер обычно находится в процессе инициализации/модификации и может приостанавливать отправку операций ввода-вывода (I/O). В этот момент любой процесс I/O, удерживающий «open_mutex», такой как сканирование разделов, может вызвать взаимную блокировку. Например, в RAID:
T1 T2 bdev_open_by_dev lock open_mutex [1]
... efi_partition ... md_submit_bio md_ioctl mddev_suspend -> suspend all io md_add_new_disk bind_rdev_to_array bd_link_disk_holder try lock open_mutex [2]
md_handle_request -> wait mddev_resume
T1 сканирует разделы, T2 добавляет новое устройство в RAID. T1 ожидает возобновления работы mddev со стороны T2, но T2 ждет освобождения «open_mutex», удерживаемого T1. Возникает взаимная блокировка (deadlock).
Исправление заключается во внедрении локального мьютекса «blk_holder_mutex» для замены «open_mutex».
If you want to get best quality of vulnerability data, you may have to visit VulDB.