The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимость в Ghostscript, эксплуатируемая через ImageMagick

10.09.2021 21:47

В Ghostscript, наборе инструментов для обработки, преобразования и генерации документов в форматах PostScript и PDF, выявлена критическая уязвимость (CVE-2021-3781), позволяющая выполнить произвольный код при обработке специально оформленного файла. Изначально на наличие проблемы обратил внимание Эмиль Лернер, который рассказал об уязвимости 25 августа на прошедшей в Санкт-Петербурге конференции ZeroNights X (в докладе было рассказано, как Эмиль в рамках программ bug bounty использовал уязвимость для получения премий за демонстрацию атак на сервисы AirBNB, Dropbox и Яндекс.Недвижимость).

5 сентября в открытом доступе появился рабочий эксплоит, позволяющий атаковать системы с Ubuntu 20.04 через передачу выполняемому на сервере web-скрипту, использующему пакет php-imagemagick, специально оформленного документа, загруженного под видом картинки. При этом по предварительным данным подобный эксплоит находился в обиходе ещё с марта. Заявлялось о возможности атаки на системы с GhostScript 9.50, но выяснилось, что уязвимость проявляется и во всех последующих версиях GhostScript, включая находящийся в разработке выпуск 9.55 из Git.

Исправление было предложено 8 сентября и после рецензирования принято в репозиторий GhostScript 9 сентября. Во многих дистрибутивах проблема остаётся до сих пор не исправлена (статус публикации обновлений можно посмотреть на страницах Debian, Ubuntu, Fedora, SUSE, RHEL, Arch Linux, FreeBSD, NetBSD). Релиз GhostScript с устранением уязвимости планируют опубликовать до конца месяца.

Проблема вызвана возможностью обхода режима изоляции "-dSAFER" из-за недостаточной проверки параметров Postscript-устройства "%pipe%", позволявших добиться выполнения произвольных shell-команд. Например, для запуска утилиты id в документе достаточно указать строку "(%pipe%/tmp/&id)(w)file" или "(%pipe%/tmp/;id)(r)file".

Напомним, что уязвимости в Ghostscript представляют повышенную опасность, так как данный пакет используется во многих популярных приложениях для обработки форматов PostScript и PDF. Например, Ghostscript вызывается в процессе создания миниатюр на рабочем столе, при фоновой индексации данных и при преобразовании изображений. Для успешной атаки во многих случаях достаточно просто загрузить файл с эксплоитом или просмотреть каталог с ним в файловом менеджере, поддерживающем отображение эскизов документов, например, в Nautilus.

Уязвимости в Ghostscript также можно эксплуатировать через обработчики изображений на базе пакетов ImageMagick и GraphicsMagick, передав в них JPEG или PNG-файл, в котором вместо картинки находится код PostScript (такой файл будет обработан в Ghostscript, так как MIME-тип распознаётся по содержимому, а не полагаясь на расширение). В качестве обходного пути защиты от эксплуатации уязвимости через автоматический построитель миниатюр в GNOME и ImageMagick рекомендуется отключить вызов evince-thumbnailer в /usr/share/thumbnailers/evince.thumbnailer и запретить обработку форматов PS, EPS, PDF и XPS в ImageMagick, для чего в секцию "policymap" файла конфигурации /etc/ImageMagick/policy.xml следует добавить:


    <policy domain="coder" rights="none" pattern="PS" />
    <policy domain="coder" rights="none" pattern="PS2" />
    <policy domain="coder" rights="none" pattern="PS3" />
    <policy domain="coder" rights="none" pattern="EPS" />
    <policy domain="coder" rights="none" pattern="EPI" />
    <policy domain="coder" rights="none" pattern="PDF" />
    <policy domain="coder" rights="none" pattern="XPS" />



  1. Главная ссылка к новости (https://bugs.ghostscript.com/s...)
  2. OpenNews: Уязвимость в Ghostscript, позволяющая выполнить код при открытии PostScript-документа
  3. OpenNews: Очередные 4 уязвимости в Ghostscript
  4. OpenNews: Уязвимость php-fpm, позволяющая удалённо выполнить код на сервере
  5. OpenNews: Очередные критические уязвимости в Ghostscript
  6. OpenNews: Новая критическая уязвимость в Ghostscript, эксплуатируемая через ImageMagick
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/55780-ghostscript
Ключевые слова: ghostscript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (45) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 22:11, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Делать текстовые документы Тьюринг-полными изначально было ошибкой.
     
     
  • 2.7, Аноним (7), 22:51, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +22 +/
    Ну, не знаю. Мне кажется, что ошибкой было (и есть) считать Postscript и PDF _текстовыми_ документами...
     
     
  • 3.13, РобинГуд (?), 04:03, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    А ты хорош.
     

  • 1.2, Аноним (2), 22:24, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я старательно и методично удаляю ghostscript отовсюду.
     
     
  • 2.4, Kuromi (ok), 22:41, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Все бы хорошо, но от него зависит CUPS...
     
     
  • 3.8, Аноним (2), 22:55, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Что-то вроде этого, если cups не используется code bin sh cat tmp noop c... большой текст свёрнут, показать
     
  • 3.24, макпыф (ok), 15:17, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    вернее cups-filters
     
  • 2.15, Админ Анонимов (?), 08:35, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    тогда нужно было писать так:
    Я старательно и методично удаляю ... отовсюду.
     
  • 2.16, Админ Анонимов (?), 08:37, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    fix: Я старательно и методично удаляю xxx отовсюду.
     
     
  • 3.52, Аноним (52), 20:56, 13/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не, тогда уж лучше, CUPS удалю, а XXX пусть останется. Его и на экране смотреть можно. :)
     

  • 1.3, Kuromi (ok), 22:33, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Сезон дыр в Ghostscript снова открыт? В прошлый раз уязвимости находили каждую неделю.
     
     
  • 2.20, Аноним (20), 11:04, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Осень.
     

  • 1.5, Аноним (5), 22:46, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Этот GhostScript - дырявое говно. Нужно окончательное решение GhostScriptного вопроса: написать drоp-in замену, использущую под капотом OpenBox.
     
     
  • 2.11, B (?), 23:23, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Rust? Go?
     
     
  • 3.17, пох. (?), 09:09, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    игогошечка не сможет волшебным образом санировать строчку %pipe%, и опять все будет зависеть только от прямизны рук программиста.

    Поэтому остается только начать переписывать на хрусте. Нет кода - нет уязвимостей! А если даже и есть - код прочитать невозможно, поэтому их не найдут.

    Хотя, вон, обратите внимание на код Анонима под номером 2 - КАК он поде6ил проклятый cups! И ведь на сишечке, без всяких этих модных технологий!

    Я полагаю, если качественно взяться - то и сам postscript можно подебить подобным образом, так что камня на камне от него не останется. Зачем вам проклятые педеэфе, "нам от проприетарной адоби ничаво нинужна!"


     
  • 3.45, Аноним (45), 14:16, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Оба
     

  • 1.6, Аноним (6), 22:47, 10/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Лично я отгородился от этой штуки через редактирование /etc/ImageMagick-6/policy.xml (Ubuntu 18.04 десктоп):

    <policy domain="coder" rights="none" pattern="PS" />
    <policy domain="coder" rights="none" pattern="EPI" />
    <policy domain="coder" rights="none" pattern="PDF" />
    <policy domain="coder" rights="none" pattern="XPS" />
    <policy domain="coder" rights="none" pattern="PS2" />
    <policy domain="coder" rights="none" pattern="PS3" />
    <policy domain="coder" rights="none" pattern="EPS" />

    Превьюхи для этих типов теперь пустые, но мне они и не нужны были.

     
     
  • 2.9, Отец Инквизитор (?), 23:03, 10/09/2021 [^] [^^] [^^^] [ответить]  
  • +17 +/
    Выколол себе глаза, чтоб не видеть греха? Уважаю.

     
     
  • 3.51, Аноним (51), 06:49, 13/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Давно так не смеялся, спасибо, Инквизитор! :)
     

  • 1.19, Аноним (19), 11:03, 11/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему бы им не перейти уже на libvips. im/gm в разы медленнее и жрут больше памяти.
     
     
  • 2.21, Sw00p aka Jerom (?), 12:48, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    там же ImageMagick в зависимостях
     
     
  • 3.28, Аноним (19), 18:03, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так и говорю, сменить на libvips.
     
  • 3.30, Аноним (30), 23:04, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    он optional - только для чтения форматов, не поддерживаемых самой vips

    там в общем все "optional" (как и у самой imagemagick - вовсе необязательно вкомпилировать туда gs если тебе не нужны pdf'ы)

    Но в целом - "вот когда в пехепе интегрируют, тогда и приходите".

     
     
  • 4.31, Sw00p aka Jerom (?), 23:45, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > он optional - только для чтения форматов, не поддерживаемых самой vips

    так и есть, просто в тех же портах в бсд он списке Requires

    vips-8.11.3
    Free image processing system
    Description : Changes
    Maintained by: danilo@FreeBSD.org
    Requires: ImageMagick7-7.0.11.12_2, Imath-3.1.3 ....

    > Но в целом - "вот когда в пехепе интегрируют, тогда и приходите".

    If you are going to be using libvips with untrusted images, perhaps in a web server, for example, you should consider the security implications of enabling a package with such a large attack surface.

    вот это рассмешило :)


     
     
  • 5.33, пох. (?), 00:12, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > так и есть, просто в тех же портах в бсд он списке Requires

    ну ты просто не застал времен, когда там и imagick скачивал для сборки себя весь интернет ненужнейшего ненужно. У меня долго лежал среди прочих патч к мэйкфайлу, выпиливающий оттуда половину, типа никем и нигде не используемого jpeg2000. И еще дольше - трехстрочное заклинание для make делающее то же самое с мэйкфайлом следующего поколения, уже через дефайны. И только через еще несколько лет оно научилось в стандартный make config

    И эту лет через пять починют ;-)

    > вот это рассмешило :)

    да там половина пакетов при установке чем-то подобным радует глаз. "Исправить мы ничего не можем, но мы хотя бы предупредили". Особенно полезно когда это зависимость пятого порядка и никто в общей куче ничего уже не прочитает.

    традиция-с...


     
     
  • 6.39, timur.davletshin (ok), 07:43, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ... никем и нигде не используемого jpeg2000...

    Archive.org содержит море сканов достойнейших книжек, качественные сканы там в JPEG2000 (PDF из JBIG2 + JPEG2000). Не вижу причин для пережатия и ухудшения кач-ва. Более того, PDF по стандарту требует поддержки JPEG2000. Тот же Firefox, который не поддерживает JPEG2000 в web-контенте, вынужден был написать декодер на JS в своём PDF.js.

     
     
  • 7.41, пох. (?), 09:04, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ну оригинально выпендрились, чо.
    Интересно, где они нашли этот сканер, производства позапрошлого века.

    И тот какими-то странными извращенцами, потому что и в прошлом веке сканеры использовали tiff в качестве универсального loosless формата, а не jpeg2000.

     
     
  • 8.42, Anonymoustus (ok), 10:43, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не 171 выпендрились 187 и не 171 извращенцы 187 , а стандартный формат I... текст свёрнут, показать
     
     
  • 9.46, пох. (?), 20:39, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ну то есть белки-истерички как есть Борцуны со всем собственническим во славу н... текст свёрнут, показать
     
     
  • 10.49, Anonymoustus (ok), 22:08, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Об их мотивах я не осведомлён Что касается шва6оды, не обойтись без бутылки и з... текст свёрнут, показать
     
  • 8.43, timur.davletshin (ok), 11:54, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Никто не мешает тебе и TIFF скачать в индивидуальных файлах, только в JPEG2000 з... текст свёрнут, показать
     
     
  • 9.47, пох. (?), 20:41, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    вопрос в том, откуда у них вообще взялись такие уродливые оригиналы и зачем бы... текст свёрнут, показать
     
     
  • 10.48, timur.davletshin (ok), 21:09, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я не знаю, откуда столько пафоса, ты просто явно не пользовался им Оригинальное... текст свёрнут, показать
     
  • 10.54, Tifereth (ok), 10:31, 14/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так взять и спросить, если в самом деле интересно Если исторически уже ест... текст свёрнут, показать
     
     
  • 11.55, пох. (?), 11:35, 14/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну какая туча всего Один весьма странный коллектив, слегка ушибленный открыт... текст свёрнут, показать
     
  • 6.44, Sw00p aka Jerom (?), 14:12, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > ну ты просто не застал времен, когда там и imagick скачивал для
    > сборки себя весь интернет ненужнейшего ненужно.

    в те самые времена я из тарболов устанавливал, и плевался на порты, а щас ставлю из портов и плююсь на пекеджи.

    > И эту лет через пять починют ;-)

    дай Бог (оптимистично)

    > традиция-с...

    потребительская традиция опенсоурса. Думают, раз кто-то написал зачем писать самим, давайте юзать. А если там баги, то это не их проблемы.

     

  • 1.25, Аноним (-), 16:46, 11/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ghostscript - это драйвер принтеров, в том числе свободная реализация языка PostScript. И не нойте пожалуйста, баги фиксят.
     
     
  • 2.29, Аноним (30), 19:36, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Баги сажают, вы хотели сказать? Этой проблемы нет в версиях до 9.50, когда что-то где-то зачем-то опять понаулучшайкали.

     

  • 1.26, Kuromi (ok), 17:11, 11/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кстати Эмиль молодец, сначала обнес компании на премии за уязвимости, а потом уже спалил её. А ведь мог продать АНБшникам\кулхацкерам же.
     
     
  • 2.27, OpenEcho (?), 17:41, 11/09/2021 [^] [^^] [^^^] [ответить]  
  • +7 +/
    да он вообще нормальный пацан, судя названиям проектов на гитхабе

    https://github.com/neex/gifoeb
    https://github.com/neex/phuip-fpizdam

     
     
  • 3.50, Аноним (50), 23:35, 12/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >нормальный пацан
    >positive hack days

    ну-ну.

     

  • 1.32, sailorCat (?), 23:59, 11/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Никогда такого не было.
     
  • 1.40, Аноним (40), 08:44, 12/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Я правильно понимаю, что т.е. если кто-то загрузит на нэкстклауд вредоносный файл, использующий эту уязвимость, код будет исполнен на сервере?

    Предположим, что NC сервер работает на ubuntu 20.04 в формате снапа.

     
  • 1.53, Аноним (53), 23:48, 13/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В Gentoo imagemagick уже с предложенными защитами поставляется (их как с прошлого раза поставили, так и не убирают)
     
     
  • 2.56, пох. (?), 11:37, 14/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > В Gentoo imagemagick уже с предложенными защитами поставляется

    в смысле со сломанной обработкой половины графических форматов? Вам к отцу инквизитору. По винтовой лесенке в подвал, и через люк по приставной еще ниже. Он вас там ждет.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру