Уязвимость в ImageMagic, позволившая получить доступ к чужим вложениям в почте Yahoo
Крис Эванс (Chris Evans), известный эксперт по компьютерной безопасности и автор защищенного FTP-сервера vsftpd, опубликовал сведения об опасной уязвимости (CVE-2017-9098) в пакете ImageMagick, который часто используется web-разработчиками для преобразования изображений. Примечательно, что в GraphicsMagick, форке ImageMagic, уязвимость была устранена еще в марте 2016 года, но из-за отсутствия скоординированных действий по устранению уязвимостей в обоих проектах, проблема осталась неисправленной в ImageMagic.
Проблема присутствует в декодировщике RLE, который использует не инициализированные блоки памяти, что позволяет атакующему получить доступ к информации, оставшейся от других обработчиков в данном процессе. Наиболее интересным моментом стала разработка практического метода атаки на основе данной проблемы. Крис Эванс показал, что уязвимость можно использовать для атаки на сервис Yahoo Mail для получения доступа к вложениям чужих писем через отправку письма со специально оформленной картинкой во вложении.
При организации предпросмотра вложений Yahoo использует ImageMagic для обработки изображения, что позволяет через эксплуатацию рассматриваемой уязвимости получить доступ к данным, оставшимся от обработки вложений других пользователей. В частности, Крис отправил себе письмо со специально оформленным 18-байтовым изображением, при предпросмотре которого через web-интерфейс открылось искаженное JPEG-изображение 1024x1024, которое включало данные, присутствующие в недавно обработанных вложениях других пользователей.
Компания Yahoo выплатила исследователю вознаграждение в размере 28 тысяч долларов и приняла решение прекратить использование пакета ImageMagic в своих службах. Проблема устранена в ImageMagick 7.0.5-2 и GraphicsMagick 1.3.24. Обновления в дистрибутивах еще не выпущены, проследить за их появлением можно на данных страницах: Debian, SUSE/openSUSE, RHEL, Fedora, Ubuntu, FreeBSD. Следует отметить, что проблема представляет опасность в длительно работающих процессах, циклично обрабатывающих запросы без завершения работы.