В наборе утилит ImageMagick, который предназначен для чтения и редактирования файлов различных графических форматов, выявлена опасная уязвимость нулевого дня, которую сами исследователи назвали ImageTragick. Так как набор ImageMagick является основой для множества библиотек обработки изображений и модулей, его использует огромное количество сайтов, и он широко поддерживается Ruby, JavaScript, PHP, Java, NodeJS и так далее. Проблема в том, что эксплоиты уже существуют, а патча пока нет.
Сообщается, что очередную «именную» уязвимость нашли двое исследователей, один из которых известен под псевдонимом Stewie, а второй под реальным именем — это Николай Ермишкин, сотрудник компании Mail.ru.
Исследователи обнаружили в ImageMagick 7.0.1-1 и 6.9.3-10 ряд проблем, основной из которых является CVE-2016–3714. Она позволяет удаленное выполнение произвольного кода, и эксплуатировать ее очень легко – достаточно чтобы на сайте была разрешена загрузка пользовательских изображений.
Эксперты пишут, что баг уже используется злоумышленниками для атак. Именно по этой причине уязвимость решили придать огласке, не дожидаясь выхода официального патча. Исследователи уверены, что предупредив администраторов сайтов о 0-day и новой атаке, а также рассказав им, как не стать жертвой злоумышленников, они делают доброе дело.
Единственное необходимое для выполнения атаки условие: пользователи должны иметь возможность загружать на сервер собственные изображения. Такое встречается на миллионах сайтов, к примеру, пользователям предоставляют возможность загрузить свой аватар. Так как для обработки аватарки или очередной картинки с мемом, скорее всего, будут использованы утилиты ImageMagick, это может привести к компрометации сервера.
Подробности атаки исследователи пока не раскрывают, не желая вкладывать в руки злоумышленников оружие в виде фактического эксплоита. Тем не менее, эксперты признают, что эксплоит для этой уязвимости очень прост. Из описания проблемы и способов уклонения от нее, можно понять, что она касается кодеков ImageMagick и так называемых magic bytes: первые несколько байтов в коде файла, которые, как правило, используются для идентификации типа файла. К примеру, GIF начинаются с «47 49 46 38», JPEG с «FF D8» и так далее.
Разработчики ImageMagick уже знают об уязвимости. Хотя среди исходных кодов проекта можно найти зачатки будущего патча, он пока не готов. Пока исправление не вышло, на официальном сайте опубликованы инструкции о том, как защититься от нового вектора атак. В частности, администраторам сайтов рекомендуется проверять magic bytes всех пользовательских файлов, а также отредактировать файл policy.xml, добавив туда следующие строки:
<policymap>
<policy domain="coder" rights="none" pattern="EPHEMERAL" />
<policy domain="coder" rights="none" pattern="URL" />
<policy domain="coder" rights="none" pattern="HTTPS" />
<policy domain="coder" rights="none" pattern="MVG" />
<policy domain="coder" rights="none" pattern="MSL" />
</policymap>
Хотя на официальном сайте уязвимости эксплоит пока не опубликован, его появление, очевидно, вопрос ближайших часов. К примеру, исследователь Дэн Тентлер пишет в твиттере, что ему удалось создать работающий эксплойт всего за сорок минут.
so um.
— Dan Tentler (@Viss) May 3, 2016
I just did my first exploit PoC.
I have a working PoC for the imagemagic bug. pic.twitter.com/hyNgtZpsSL