CVE-2026-80700 in Linux
Сводка
по VulDB • 28.08.2026
В ядре Linux была устранена следующая уязвимость:
drm/vmwgfx: проверка границ копирования внешнего буфера объектов (BO) для обоих путей с шагом (stride).
Функция vmw_external_bo_copy() доверяет смещениям, шагам и высотам, предоставленным вызывающей стороной, и работает с импортированными отображениями dma-buf (vmaps):
- Границы memcpy() при равных значениях stride были ограничены после вычитания смещений из dst_size и src_size; если смещение больше размера BO, беззнаковое вычисление приводит к переполнению и получению огромного значения, в результате чего вызов memcpy() выходит за пределы vmap. Также произведение dst_stride * height является умножением типа u32, которое может привести к переполнению. - В пути построчного копирования при неравных stride не было никаких ограничений. Цикл обращается к байтам через offset + (height - 1) * stride + width_in_bytes, с единственной проверкой WARN_ON(dst_stride < width_in_bytes), и также может выйти за пределы любого из отображений.
Смещения и шаги вычисляются на основе состояния плоскостей STDU/SOU, поэтому настроенный CRTC, отправляющий специально созданный атомарный коммит для импортированного фреймбуфера, может достичь этого пути выполнения кода.
Необходимо проверять точную конечную точку копирования строки против размера каждого BO заранее с использованием функций check_mul_overflow() и check_add_overflow(). Использовать путь bulk memcpy() следует только тогда, когда width_in_bytes покрывает весь stride; в противном случае копируйте данные по одной строке за раз, чтобы частичные обновления строк у нижней части фреймбуфера оставались корректными. Также необходимо отклонять нулевые значения шага (stride) и случаи, когда stride меньше width_in_bytes, так как путь построчного копирования не может безопасно обработать такие ситуации.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.