Разработчики VideoLAN исправили критическую double-free (двойное освобождение памяти) уязвимость в VLC Media Player. Баг позволял выполнить произвольный код на уязвимой машине. Проблема получила идентификатор CVE-2019-12874 и набрала 9,8 баллов из 10 возможных по шкале оценки уязвимостей CVSS v3.
Баг обнаружили специалисты компании Pen Test Partners. Они объясняют, что корень проблемы лежал в функции zlib_decompress_extra. Эксплуатировать ошибку можно было через специально модифицированный файл MKV, который провоцировал double-free в zlib_decompress_extra() (demux/mkv/utils.cpp). В итоге на уязвимой машине становилось возможно выполнить произвольный код.
Проблема была исправлена с релизом VLC версии 3.0.7. Также стоит отметить, что в этой версии медиаплеера, помимо множества мелких багов, была устранена еще одна серьезная уязвимость: CVE-2019-5439. Эта ошибка представляла собой переполнение буфера хипа и была связана с работой функции ReadFrame (demux/avi/avi.c). Данный баг можно было использовать посредством специально модифицированного файла AVI.
Пользователям настоятельно рекомендуется обновить медиаплеер до версии 3.0.7 и избегать открытия и воспроизведения видеофайлов, полученных из ненадежных источников.