В ядре Linux устранена следующая уязвимость:
iommufd: освободить текущий IOAS при сбое xa_store().
iommufd_take_all_iova_rwsem() принимает ссылку на объект и
Блокировка записи iova_rwsem перед сохранением IOAS во временном ioas_list
xarray.
Если xa_store() завершается неудачно, текущий IOAS не был вставлен в
ioas_list еще. iommufd_release_all_iova_rwsem() только разворачивает IOAS
объекты, уже присутствующие в этом массиве xarray, поэтому он не может освободить текущий
ИОАС.
Освободите текущую rwsem IOAS и ссылку на объект, прежде чем разворачивать
ранее сохраненные записи.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: iommufd: Release current IOAS on xa_store() failure iommufd_take_all_iova_rwsem() takes an object reference and the iova_rwsem write lock before storing the IOAS in the temporary ioas_list xarray. If xa_store() fails, the current IOAS has not been inserted into ioas_list yet. iommufd_release_all_iova_rwsem() only unwinds IOAS objects already present in that xarray, so it cannot release the current IOAS. Release the current IOAS rwsem and object reference before unwinding the previously stored entries.