Ad

CVE-2026-81008

HIGH CVSS 3.1: 7,8 EPSS 0.16%
Обновлено 14 сентября 2026
Linux
Параметр Значение
CVSS 7,8 (HIGH)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: межсоединение: исправлено использование после free в icc_get() и of_icc_get_by_index(). В of_icc_get_by_index() и icc_get(), если динамическое выделение путь->имя завершается с ошибкой через kasprintf(), путь обработки ошибок напрямую вызывает kfree(path) для освобождения объекта пути и возвращает ошибку. Однако до этого момента path_find() вызывает path_init(), который уже связывает запросы пути с req_list соответствующего соединять узлы через hlist_add_head().

Непосредственный вызов kfree(path) оставляет висящие указатели в списке. Последующий вызов icc_get() или icc_set_bw() будет просматривать или изменять эти поврежденные списки, вызывая плиту использовать после бесплатно. Отчет KASAN, показывающий уязвимость при воспроизведении через debugfs: ОШИБКА: KASAN: slab-use-after-free в path_find+0x6f8/0xcfc Запись размера 8 по адресу fff000000d43f748 по задаче sh/1. ...

Трассировка звонков: kasan_report+0xac/0xfc path_find+0x6f8/0xcfc icc_get+0x148/0x380 icc_get_set+0xf8/0x2d0 ... Освобожден заданием 1: kfree+0x1a0/0x4a4 icc_get+0x2cc/0x380 icc_get_set+0xf8/0x2d0 Исправьте это, заменив kfree(path) на правильную функцию удаления: icc_put(path), который безопасно удаляет запросы из req_list, используя hlist_del() и удаляет ссылки на использование провайдера, прежде чем освободить память. Кроме того, в icc_get() убедитесь, что мьютекс icc_lock освобожден. перед вызовом icc_put(path), чтобы избежать взаимоблокировки, как icc_put() внутренне приобретает ту же блокировку.

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: interconnect: Fix use after free in icc_get() and of_icc_get_by_index() In of_icc_get_by_index() and icc_get(), if the dynamic allocation for path->name fails via kasprintf(), the error handling path directly calls kfree(path) to free the path object and returns an error. However, prior to this point, path_find() calls path_init(), which already links the path's requests into the req_list of the respective interconnect nodes via hlist_add_head(). Directly invoking kfree(path) leaves dangling pointers in the hlist. A subsequent call to icc_get() or icc_set_bw() will traverse or modify these corrupted lists, triggering a slab use afterfree. KASAN report showing the vulnerability when reproducing via debugfs: BUG: KASAN: slab-use-after-free in path_find+0x6f8/0xcfc Write of size 8 at addr fff000000d43f748 by task sh/1 ... Call trace: kasan_report+0xac/0xfc path_find+0x6f8/0xcfc icc_get+0x148/0x380 icc_get_set+0xf8/0x2d0 ... Freed by task 1: kfree+0x1a0/0x4a4 icc_get+0x2cc/0x380 icc_get_set+0xf8/0x2d0 Fix this by replacing kfree(path) with the proper teardown function, icc_put(path), which safely removes the requests from the req_list using hlist_del() and drops the provider usage references before freeing the memory. Additionally, in icc_get(), ensure that the icc_lock mutex is released prior to calling icc_put(path) to avoid a deadlock, as icc_put() internally acquires the same lock.

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1