В ядре Linux устранена следующая уязвимость:
Accel/amdxdna: использовать вызывающий клиент для синхронизации отладки BO.
amdxdna_drm_sync_bo_ioctl() ищет дескриптор args->в вызывающем объекте ioctl
drm_file. Для SYNC_DIRECT_FROM_DEVICE он затем вызывает
amdxdna_hwctx_sync_debug_bo(), но передает abo->client.
amdxdna_hwctx_sync_debug_bo() использует переданный клиент как дескриптор
пространство имен для debug_bo_hdl и как владелец xarray аппаратного контекста. Они должны соответствовать файлу, который предоставил args->handle.
БО хранится
Указатель клиента — это состояние объекта, а не контекст ioctl. Вместо этого передайте filp->driver_priv, соответствующий исходному поиску дескриптора.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: accel/amdxdna: Use caller client for debug BO sync amdxdna_drm_sync_bo_ioctl() looks up args->handle in the ioctl caller's drm_file. For SYNC_DIRECT_FROM_DEVICE, it then calls amdxdna_hwctx_sync_debug_bo(), but passes abo->client. amdxdna_hwctx_sync_debug_bo() uses the passed client both as the handle namespace for debug_bo_hdl and as the owner of the hardware context xarray. Those must match the file that supplied args->handle. The BO's stored client pointer is object state, not the ioctl context. Pass filp->driver_priv instead, matching the original handle lookup.
Характеристики атаки
Последствия
Строка CVSS v3.1