CVE-2026-53401 in Linux
Сводка
по VulDB • 19.07.2026
В ядре Linux устранена следующая уязвимость:
fbdev: omap2: исправлена ошибка use-after-free в функции omapfb_mmap()
Функция omapfb_mmap() содержит состояние гонки (race condition) с ioctl-вызовом OMAPFB_SETUP_PLANE, которое может привести к ошибке use-after-free.
Точка входа fb_mmap() удерживает mm_lock, но не lock (fb_info->lock), тогда как обработчики ioctl, такие как OMAPFB_SETUP_PLANE, удерживают lock, но не mm_lock. Это позволяет выполнять операции параллельно.
В omapfb_mmap(): 1. rg = omapfb_get_mem_region(ofbi->region); // Получение ссылки на старую область (old region ref) 2. start = omapfb_get_region_paddr(ofbi); // Чтение из НОВОЙ области 3. len = fix->smem_len; // Чтение из НОВОЙ области 4. vm_iomap_memory(vma, start, len); // Отображение памяти НОВОЙ области 5. atomic_inc(&rg->map_count); // Инкремент счетчика для СТАРОЙ области!
Параллельно OMAPFB_SETUP_PLANE может: - Переназначить ofbi->region = new_rg - Обновить fix->smem_len - Вызов OMAPFB_SETUP_MEM затем проверяет map_count НОВОЙ области (0!) и освобождает её
В результате у пользовательского пространства остается отображение на уже освобожденную физическую память.
Исправление заключается в чтении всех необходимых значений (start, len) из той же ссылки на область памяти (rg), для которой будет инкрементироваться map_count, что предотвращает освобождение области до тех пор, пока она все еще находится в отображении.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.