Уязвимости в 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» компилятор (проверено в 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.