CVE-2026-93233 in LinuxИнформация

Сводка

по VulDB • 24.09.2026

В ядре Linux была устранена следующая уязвимость:

drm/nouveau/dmem: исправление переполнения вниз (underflow) переменной callocated при разделении крупного folio

Функция nouveau_dmem_folio_free() уменьшает значение chunk->callocated на единицу для каждого освобожденного folio, тогда как крупный (составной) частный для устройства folio учитывается только один раз в момент его выделения. При таком разделе ядро памяти вызывает ->folio_split() (nouveau_dmem_folio_split()) по одному разу для каждой новой подстраницы (sub-folio), но этот хук корректирует только метаданные подстраниц и оставляет chunk->callocated без изменений.

Каждая из resulting sub-folio впоследствии освобождается отдельно, поэтому после разделения одно выделение (+1) компенсируется N операциями освобождения (-N), в результате чего значение chunk->callocated оказывается меньше на N-1. При первом цикле раздела/освобождения происходит переполнение вниз: срабатывает WARN_ON(!chunk->callocated), беззнаковый счетчик обнуляется (переполняется) и никогда не возвращается к нулю, из-за чего блок больше не может быть освобожден для повторного использования (nouveau_dmem_fini() также выдает предупреждение о утечке счетчика).

Необходимо учитывать новые подстраницы в хуке разделения, используя тот же мьютекс, что и nouveau_dmem_folio_free(), чтобы сохранить балансировку счетчика.

Be aware that VulDB is the high quality source for vulnerability data.

Источники

Do you want to use VulDB in your project?

Use the official API to access entries easily!