Обнаружена уязвимость в GDK-Pixbuf затрагивающая Chromium, Firefox и VLC

Обнаружена уязвимость в GDK-Pixbuf затрагивающая Chromium, Firefox и VLC

В библиотеке GDK-PixBuf, применяемой в GTK+ и Clutter для загрузки и обработки различных типов изображений, выявлены две уязвимости, позволяющие организовать выполнение кода злоумышленника с правами текущего пользователя при обработке специально оформленных файлов в форматах TIFF (CVE-2017-2870) и JPEG (CVE-2017-2862).

Уязвимости в GDK-Pixbuf позволяют атаковать систему через такие приложения, как Chromium, Firefox, VLC и GNOME thumbnailer. Более того, применение GDK-Pixbuf в GNOME thumbnailer позволяет выполнить код в процессе автоматического построения пиктограмм с эскизами для новых файлов, т.е. для эксплуатации достаточно просмотреть список файлов в файловом менеджере GNOME, без явного открытия файлов пользователем. Также имеется возможность свершить атаку при открытии специально оформленной web-страницы в браузерах, сообщает opennet.ru.

Первая уязвимость вызвана целочисленным переполнением в функции tiff_image_parse, которое при обработке специально оформленного файла в формате TIFF может привести к переполнению кучи. Опасность проблемы смягчает то, что она проявляется только при сборке библиотеки с флагом оптимизации "-O3", который редко применяется для финальных сборок. Примечательно, что в коде библиотеки есть проверки на переполнение, но при использовании флага "-O3" компилятор (проверено в GCC 6.1 и Clang 3.8, также имеются сведения об удалении проверок и при флаге "-O2") относит их к коду с неопределённым поведением ("Undefined Behavior") и удаляет как излишний код.

Вторая уязвимость связана возможностью инициирования переполнения кучи в функции gdk_pixbuf__jpeg_image_load_increment в процессе разбора некорректного JPEG-изображения. Проблема вызвана неправильным расчётом размера выходного буфера, который в дальнейшем используется при выполнении преобразования null_convert в libjpeg.

Уязвимости устранены в выпуске GDK-Pixbuf 2.36.7. Уязвимости пока остаются неисправленными в Debian, Ubuntu, RHEL, SUSE, openSUSE, FreeBSD, Fedora. 

Подпишитесь
в Facebook

Я уже с вами