Версии FFmpeg с 3.0 по 8.1.2 содержат уязвимость записи за пределами допустимого диапазона в видеофильтре vf_swaprect, которая позволяет злоумышленникам повреждать динамическую память, предоставляя созданный видеокадр NV12 с нечетными размерами ширины. Функция filter_frame() повторно использует временный буфер строк, размер которого соответствует однобайтовому шагу пикселей плоскости 0, во всех плоскостях, что приводит к выделению 18-байтовой памяти memcpy в 17-байтовую кучу при обработке плоскости цветности с чередованием двух байтов на выборку кадра NV12 17x16, что приводит к повреждению кучи и сбою процесса с возможным выполнением кода.
Показать оригинальное описание (EN)
FFmpeg versions 3.0 through 8.1.2 contain an out-of-bounds write vulnerability in the vf_swaprect video filter that allows attackers to corrupt heap memory by supplying a crafted NV12 video frame with odd width dimensions. The filter_frame() function reuses a temporary row buffer sized for plane 0's single-byte pixel step across all planes, causing an 18-byte memcpy into a 17-byte heap allocation when processing the two-byte-per-sample interleaved chroma plane of a 17x16 NV12 frame, resulting in heap corruption and process crash with potential for code execution.
Характеристики атаки
Последствия
Строка CVSS v4.0