В ядре Linux устранена следующая уязвимость:
vduse: удерживать vduse_lock при поиске IDR по открытому пути.
vduse_dev_open() ищет структуру vduse_dev по IDR, а затем
получает dev->lock только после удаления vduse_lock.
Это оставляет окно, в котором одновременный VDUSE_DESTROY_DEV может удалить
тот же объект из IDR и освободите его до того, как открытый путь заблокирует
устройство, что приводит к использованию после бесплатного использования.
Закройте эту гонку, удерживая vduse_lock до тех пор, пока не будет dev->lock.
полученный по открытому пути, соответствующий порядку блокировки, уже используемому
путь разрушения.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: vduse: hold vduse_lock across IDR lookup in open path vduse_dev_open() looks up struct vduse_dev through the IDR and then acquires dev->lock only after vduse_lock has been dropped. This leaves a window where a concurrent VDUSE_DESTROY_DEV can remove the same object from the IDR and free it before the open path locks the device, leading to a use-after-free. Close this race by keeping vduse_lock held until dev->lock has been acquired in the open path, matching the lock ordering already used by the destroy path.
Характеристики атаки
Последствия
Строка CVSS v3.1