Ad

CVE-2026-68271

NONE EPSS 0.18%
Обновлено 17 августа 2026
Linux
Параметр Значение
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: drm/nouveau: исправлен обратный порядок очистки ошибок в функциях ucopy. nouveau_uvmm_vm_bind_ucopy() и nouveau_exec_ucopy() сообщают об ошибке метки очистки в порядке распределения, а не в обратном порядке. При ошибке u_memcpya() для in_sync.s переход к err_free_ops (или err_free_pushs) освобождает первое выделение, а затем переходит к err_free_ins, который вызывает u_free() для args->in_sync.s. Поскольку args->in_sync.s по-прежнему содержит ERR_PTR, возвращенный неудачным значения u_memcpya() и ERR_PTR не перехватываются функцией ZERO_OR_NULL_PTR(), kvfree() приступает к его разыменованию, что может привести к ошибке ядра.

Вместо этого при ошибке out_sync.s происходит переход к err_free_ins и пропуск освобождения. первое выделение, приводящее к утечке памяти. Исправьте это, поменяв порядок меток очистки, чтобы ресурсы освобождались в правильная обратная последовательность распределения.

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

In the Linux kernel, the following vulnerability has been resolved: drm/nouveau: fix reversed error cleanup order in ucopy functions nouveau_uvmm_vm_bind_ucopy() and nouveau_exec_ucopy() place their error cleanup labels in allocation order rather than reverse allocation order. On a u_memcpya() failure for in_sync.s, the goto to err_free_ops (or err_free_pushs) frees the first allocation and then falls through to err_free_ins, which calls u_free() on args->in_sync.s. Since args->in_sync.s still holds the ERR_PTR returned by the failed u_memcpya(), and ERR_PTR values are not caught by ZERO_OR_NULL_PTR(), kvfree() proceeds to dereference it, which can result in a kernel oops. A failure for out_sync.s instead jumps to err_free_ins and skips freeing the first allocation, leading to a memory leak. Fix by swapping the cleanup label order so resources are freed in the correct reverse allocation sequence.