Выпуск Ghostscript 9.24 с исправлением уязвимостей, эксплуатируемых через ImageMagick, Evince и Nautilus
Компания Artifex Software выпустила релиз набора инструментов для обработки, преобразования и генерации документов в форматах PostScript и PDF - Ghostscript 9.24. Ghostscript позволяет обрабатывать как язык Postscript так и документы PDF, переводить их в растровые форматы для показа на экране или для вывода на печать на принтерах без поддержки Postscript. Код проекта распространяется под лицензией AGPLv3, а содержимое каталога CMap по специальной лицензии Adobe.
В новой версии проведена работа по усилению безопасности и устранена большая порция разноплановых уязвимостей. Наиболее опасной из решенных проблем является возможность (CVE-2018-15908) обхода ограничений sandbox-изоляции, применяемой при запуске в режиме "-dSAFER". Указанная узявимость позволяет организовать выполнение в системе произвольного кода при обработке в Ghostscript специально оформленных документов (уже доступен универсальный эксплоит, который работает в Linux и Windows со всеми фронтэндами Ghostscript).
Проблема проявляется в том числе в продуктах, использующих обработчики Ghostscript, таких как ImageMagick, GraphicsMagick, Evince, GIMP, Mediawiki, Okular и Nautilus. Так как Ghostscript также применяется при построении миниатюр для рабочего стола и индексации данных, то для успешной атаки во многих случаях достаточно просто загрузить файл с эксплоитом или просмотреть каталог с ним в Nautilus. Для защиты от автоматического построения миниатюр рекомендуется временно отключить (переименовать) "/usr/bin/evince-thumbnailer".
Уязвимость также может быть эксплуатирована при преобразовании или проверке изображений при помощи обработчиков, вызывающих ImageMagick или GraphicsMagick. При этом проблемный PS, EPS, PDF и XPS может быть представлен в виде JPEG или PNG-файла, но ImageMagick и GraphicsMagick обработают такой файл в соответствии с распознанным по содержимому MIME-типом, а не полагаясь на расширение. Например, для запуска утилиты "id" достаточно создать следующий файл (shellexec.jpeg):
%!PS userdict /setpagedevice undef legal { null restore } stopped { pop } if legal mark /OutputFile (%pipe%id) currentdevice putdeviceprops
При преобразовании его в другой формат, будет выполнен произвольный код:
convert shellexec.jpeg whatever.gif uid=1000(taviso) gid=1000(taviso) groups=1000(taviso),10(wheel)
В качестве обходного пути защиты в /etc/ImageMagick/policy.xml в секции policymap можно запретить обработку PS, EPS, PDF и XPS:
&8249;policy domain="coder" rights="none" pattern="PS" /&8250; &8249;policy domain="coder" rights="none" pattern="PS2" /&8250; &8249;policy domain="coder" rights="none" pattern="PS3" /&8250; &8249;policy domain="coder" rights="none" pattern="EPS" /&8250; &8249;policy domain="coder" rights="none" pattern="PDF" /&8250; &8249;policy domain="coder" rights="none" pattern="XPS" /&8250;
В Ghostscript 9.24 также устранено несколько других критичных уязвимостей:
- CVE-2018-15911 - возможность использования неинициализированной памяти при манипуляции с оператором aesdecode в PostScript-файлах, которая потенциально может привести к выполнению кода атакующего;
- CVE-2018-15910 - возможность выполнения кода при обработке файлов PostScript со специально подобранными парамерами LockDistillerParams;
- CVE-2018-15909 - проблема при обработке типов в операторе.shfill может применяться для выхода за границы буфера при обработке специально оформленных файлов PostScript. Потенциально не исключается использование уязвимости для выполнения кода атакующего.