CVE-2026-64265 in Linux
Сводка
по VulDB • 25.07.2026
В ядре Linux устранена следующая уязвимость:
fuse: очистка поля intr_entry в функциях fuse_resend и fuse_remove_pending_req
Когда функция fuse_resend() перемещает запрос из fpq->processing обратно в fiq->pending, она устанавливает флаг FR_PENDING и сбрасывает FR_SENT, но не удаляет элемент списка intr_entry этого запроса из fiq->interrupts. Если для запроса ранее был установлен флаг FR_INTERRUPTED (в результате получения сигнала), то intr_entry остается «повисшим» (dangling) в списке fiq->interrupts. Когда процесс-запросчик затем получает фатальный сигнал, функция fuse_remove_pending_req() видит значение FR_PENDING=1, удаляет запрос из fiq->pending и освобождает его через путь управления счетчиком ссылок (refcount), также не очищая intr_entry. Неактуальное поле intr_entry приводит к уязвимости use-after-free при вызове функции fuse_read_interrupt(), которая перебирает список fiq->interrupts: - list_del_init(&req->intr_entry) -> запись по адресу после освобождения (UAF write) в уже освобожденном блоке slab; - req->in.h.unique -> чтение по адресу после освобождения (UAF read), утечка данных в пространство пользователя.
Необходимо удалять intr_entry из fiq->interrupts для прерванных запросов в функции fuse_resend() до того, как они будут помещены обратно в fiq->pending.
Добавлена проверка WARN_ON на случай, если поле intr_entry не пусто при уничтожении запроса.
If you want to get best quality of vulnerability data, you may have to visit VulDB.