В ядре Linux устранена следующая уязвимость:
Accel/Rocket: инициализировать домен задания перед очисткой путей
Rocket_ioctl_submit_job() освобождает rjob через rocket_job_put()
пути ошибок распределения. Rocket_job_cleanup() безоговорочно вызывает
rocket_iommu_domain_put(job->domain), но назначается только job->domain
после копирования задач и поиска BO. Неудача до этого задания может
поэтому очистите задание с нулевым указателем домена. Возьмите ссылку на домен для каждого файла до того, как появится первый путь ошибки.
работа.
Также очистите rjob->tasks после его освобождения в rocket_copy_tasks(), поэтому
общий путь очистки не может снова освободить массив задач после копирования задачи
ошибка.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: accel/rocket: initialize job domain before cleanup paths rocket_ioctl_submit_job() releases rjob through rocket_job_put() on allocation error paths. rocket_job_cleanup() unconditionally calls rocket_iommu_domain_put(job->domain), but job->domain is assigned only after task copying and BO lookups. A failure before that assignment can therefore clean up a job with a NULL domain pointer. Take the per-file domain reference before the first error path can release rjob. Also clear rjob->tasks after freeing it in rocket_copy_tasks(), so the common cleanup path cannot free the task array again after a task-copy error.