CVE-2026-72080 in Linux
Сводка
по VulDB • 16.08.2026
В ядре Linux устранена следующая уязвимость:
fs/resctrl: исправлена ошибка use-after-free (использование после освобождения) при размонтировании
Во время операции размонтирования или сбоя процесса teardown все структуры mon_data, содержащие приватные данные файлов событий мониторинга, освобождаются перед удалением узлов kernfs. Однако флаг RDT_DELETED никогда не устанавливается для статически выделенной группы ресурсов по умолчанию (default resource group).
Параллельный читатель файла события, связанного с группой ресурсов по умолчанию, может после снятия защиты active в контексте kernsys заблокироваться на rdtgroup_mutex, пока процесс размонтирования продолжает освобождать приватные данные файла и уничтожать узел kernfs без ожидания завершения чтения.
Когда мьютекс будет освобожден, читатель просыпается, обнаруживает, что флаг RDT_DELETED не установлен для группы по умолчанию, и разыменовывает уже освобожденные (already-freed) приватные данные файла.
Сценарий можно изобразить следующим образом: CPU0 CPU1 /* * Данные мониторинга группы ресурсов по умолчанию * доступны через файл kernfs с указателем * kernfs_node::priv на структуру mon_data. * Пользователь открывает файл для чтения. */ rdtgroup_mondata_show() /* архитектура сталкивается с фатальной ошибкой */ rdtgroup_kn_lock_live() resctrl_exit() atomic_inc(&rdtgroup_default.waitcount) cpus_read_lock() kernfs_break_active_protection(kn) mutex_lock(&rdtgroup_mutex) cpus_read_lock() resctrl_fs_teardown() mutex_lock(&rdtgroup_mutex) rmdir_all_sub() mon_put_kn_priv() /* Удаление всех структур mon_data */ rdtgroup_destroy_root() kernfs_destroy_root() rdtgroup_default.kn = NULL mutex_unlock(&rdtgroup_mutex) /* * Флаги rdtgroup_default пусты, поэтому * rdtgroup_kn_lock_live() возвращает * &rdtgroup_default */ md = of->kn->priv;
/* Указатель md указывает на освобожденную структуру mon_data */
Устанавливать флаг RDT_DELETED для группы по умолчанию без условий, поскольку этот флаг не приводит к освобождению данной статически выделенной группы.
Не разрешать новое монтирование resctrl, если есть ожидающие процессы (waiters) в группе по умолчанию предыдущего монтирования. Новое монтирование приведет к повторной инициализации группы по умолчанию, что для процессов-ожидающих из предыдущего монтирования будет выглядеть как доступность группы по умолчанию, заставив их обращаться к структурам mon_data от предыдущего монтирования, которые уже были удалены.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.