Уязвимости в GDK-Pixbuf, затрагивающие Chromium, Firefox, VLC и GNOME thumbnailer
В библиотеке 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-страницы в браузерах.
Первая уязвимость вызвана целочисленным переполнением в функции tiff_image_parse, которое при обработке специально оформленного файла в формате TIFF может привести к переполнению кучи. Опасность проблемы смягчает то, что она проявляется только при сборке библиотеки с флагом оптимизации "-O3", который редко применяется для финальных сборок. Примечательно, что в коде библиотеки есть проверки на переполнение, но при использовании флага "-O3" компилятор (проверено в clang) относит их к коду с неопределенным поведением ("Undefined Behavior") и удаляет как излишний код.
Вторая уязвимость связана возможностью инициирования переполнения кучи в функции gdk_pixbuf__jpeg_image_load_increment в процессе разбора некорректного JPEG-изображения. Проблема вызвана неправильным расчетом размера выходного буфера, который в дальнейшем используется при выполнении преобразования null_convert в libjpeg.
Уязвимости устранены в выпуске GDK-Pixbuf 2.36.7. Уязвимости пока остаются неисправленными в Debian, Ubuntu, RHEL, SUSE, openSUSE, FreeBSD, Fedora.