CVE-2017-8291
Artifex Ghostscript
2022-05-24
Artifex Ghostscript allows -dSAFER bypass and remote command execution via .rsdparams type confusion with a "/OutputFile.
Технический анализ и план устранения
Суть уязвимости
Уязвимость типа "type confusion" в обработчике параметров .rsdparams в Ghostscript. Злоумышленник может создать специальный PostScript-файл, который при обработке интерпретатором Ghostscript с параметром -dSAFER обходит эту защиту. Это позволяет произвольной команде, указанной в параметре /OutputFile, выполниться на сервере. Уязвимость критична, если Ghostscript используется веб-приложением для обработки загружаемых пользователями файлов (например, конвертации PDF в изображения).
Как исправить
Основное решение — обновить Ghostscript до исправленной версии.
-
Для Debian/Ubuntu:
bash sudo apt update sudo apt install ghostscriptУбедитесь, что установлена версия 9.20~dfsg-1 или выше для Debian 9/stretch, или 9.21~dfsg-1 и выше для более новых дистрибутивов. -
Для RHEL/CentOS 7:
bash sudo yum update ghostscriptУбедитесь, что установлена версия 8.70-23.el7_4.1 или выше. -
Для Windows: Установите обновление от вендора вашего дистрибутива Ghostscript (например, от Artifex или GPL Ghostscript). Загрузите и установите последнюю версию с официального сайта: https://www.ghostscript.com/download.html
После обновления обязательно перезапустите все службы и демоны, которые используют Ghostscript (например, веб-серверы).
Временное решение
Если немедленное обновление невозможно, примените следующие меры:
- Отключите обработку PostScript в Ghostscript через политику
-dSAFER(это стандартная мера, но для данной CVE она была обходима, поэтому требуется следующий пункт). - Используйте настройки
-sDEVICE=для ограничения устройств вывода. Например, разрешите только безопасные устройства, такие какdisplayилиpngalpha, явно указав их в команде вызова. - В веб-приложении добавьте строгую проверку MIME-типов и расширений загружаемых файлов, отклоняя все, кроме ожидаемых (например, только
.pdf). Внимание: это не абсолютная защита, так как файл можно переименовать. - Настройте WAF (Web Application Firewall) на блокировку HTTP-запросов, содержащих в теле или параметрах известные сигнатуры эксплоита для CVE-2017-8291 (например, строки, связанные с
.rsdparamsи/OutputFile). - Изолируйте сервис, использующий Ghostscript, в отдельном контейнере или виртуальной машине с минимальными правами доступа к основной системе.