The OpenNET Project / Index page

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

В Ghostscript выявлены две новые критические уязвимости

11.10.2018 11:10

Исследователями безопасности из группы Zero, созданной компанией Google для предотвращения атак, совершаемых с использованием ранее неизвестных уязвимостей, продолжено выявление критических уязвимостей в Ghostscript, позволяющих обойти ограничения sandbox-изоляции, применяемой при запуске в режиме "-dSAFER". Выявленные уязвимости позволяют организовать выполнение в системе произвольного кода при обработке в Ghostscript специально оформленных документов. Исправления пока доступны только в виде патчей (1, 2, 3), в дистрибутивах пакеты с Ghostscript ещё не обновлены.

Первая уязвимость (CVE-2018-17961) вызвана неполным устранением ранее найденной уязвимости CVE-2018-17183 и позволяет через создание обработчика исключения организовать выполнение кода вне sandbox-окружения. Вторая уязвимость (CVE-2018-18073) позволяет организовать выполнение оператора ".forceput" через манипуляции с переданным в обработчик исключения доступом к исполняемому стеку.

Напомним, что уязвимости в Ghostscript представляют повышенную опасность, так как данный пакет используется во многих популярных приложениях для обработки форматов PostScript и PDF. Например, Ghostscript вызывается в процессе создания миниатюр на рабочем столе, при фоновой индексации данных и при преобразовании изображений. Для успешной атаки во многих случаях достаточно просто загрузить файл с эксплоитом или просмотреть каталог с ним в Nautilus. Уязвимости в Ghostscript также можно эксплуатировать через обработчики изображений на базе пакетов ImageMagick и GraphicsMagick, передав в них JPEG или PNG-файл, в котором вместо картинки находится код PostScript (такой файл будет обработан в Ghostscript, так как MIME-тип распознаётся по содержимому, а не полагаясь на расширение).

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Выпуск Ghostscript 9.24 с исправлением уязвимостей, эксплуатируемых через ImageMagick, Evince и Nautilus
  3. OpenNews: В Ghostscript 9.25 продолжено исправление опасных уязвимостей
  4. OpenNews: Уязвимость, позволяющая удалённо выполнить код на сервере PHP-репозитория Packagist
  5. OpenNews: Уязвимость в NoScript 5.x, позволяющая обойти отключение JavaScript в Tor Browser 7.x
  6. OpenNews: В Git устранена уязвимость, которая может привести к выполнению кода атакующего
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49425-ghostscript
Ключевые слова: ghostscript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (31) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:27, 11/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >файл будет обработан .... MIME-тип распознаётся по содержимому, а не полагаясь на расширение

    Привычка запускать всякий мусор из левых источников, типа почты - это неизлечимо. И не играет роли, что это: "Котики.jpg.cmd" в случае винды, или "Слоники.png" со скриптами в *nix.
    Вот если эта муть уже во время формирования превьюх пролазит - тогда печаль, и надо бить по рукам ImageMagick и GraphicsMagick, т.к. не Ghostscript'ом единым можно нашпиговать файл с расширением jpg.

     
     
  • 2.7, Аноним (-), 08:07, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если почитать новость, можно узнать что запускать - не обязательно! И при чем тут ImageMagic? Он что, должен превьюхи PDF рендерить? Не говоря о том что в *magic своих CVE по жизни хватает. А вы там что, думали что программа такого размера, поддерживающая десятки навороченных форматов - да вдруг еще и без багов будет, чтоли? Как бы не так!
     

  • 1.2, ryoken (ok), 11:34, 11/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Поправьте, если ошибаюсь. Noexec на хомяке тут не поможет же..?
     
     
  • 2.4, Аноним (1), 11:46, 11/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    От тупого шифровальщика, например, - не поможет. Что-то более продвинутое, что требует загрузки payload'а из сети, ИМХО будет проблематичнее заякорить.
     
     
  • 3.8, Аноним (-), 08:11, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Очень проблематично - положить в более системную диру, предварительно повысив права через какой-нибудь соседний CVE. Благо их есть, особенно у тех кто систему не обновляет.
     
     
  • 4.12, iPony (?), 08:38, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Очень проблематично - положить в более системную диру
     
  • 4.13, iPony (?), 08:39, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Очень проблематично - положить в более системную диру

    $TEMP

     
     
  • 5.18, Аноним (-), 10:27, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > $TEMP

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

     
     
  • 6.21, iPony (?), 10:53, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Естественно можно, но на об этом речи не было. А для noexec на temp обязательно приведёт к определённым приключением, даже apt не будет работать (сражу вижу возражения — да, обходки есть).

    > приколитесь

    Вот это товарищу выше и пиши. А так да, мэлварь чисто хранимая в ОЗУ для всяких там ембедед линукс устройств, когда проблема с доступом на запись в постоянное хранилище — давно не новость.

     
     
  • 7.28, Аноним (-), 04:46, 13/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > на temp обязательно приведёт к определённым приключением, даже apt не будет
    > работать (сражу вижу возражения — да, обходки есть).

    Если хочется закрутить гайки - сюрпризы возможны. Это удивительно? Собственно, половина системной защиты - в том чтобы хакерье обломалось с стандартной шаблонной атакой и наследило по максимуму. Этакое предварительное минирование территории.

    > в ОЗУ для всяких там ембедед линукс устройств, когда проблема с
    > доступом на запись в постоянное хранилище — давно не новость.

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

     
     
  • 8.32, iPony (?), 14:37, 14/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, КЭП ... текст свёрнут, показать
     
  • 3.14, iPony (?), 08:42, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >  Что-то более продвинутое, что требует загрузки payload'а из сети, ИМХО будет проблематичнее заякорить

    Ну в .bashrc запиши 📝 и радуйся

     

  • 1.3, Аноним (3), 11:44, 11/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > такой файл будет обработан в Ghostscript, так как MIME-тип
    > распознаётся по содержимому, а не полагаясь на расширение

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

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

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

     
     
  • 2.5, Аноним (5), 13:16, 11/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Казалось бы, ну каким альтернативноодаренным надо быть, чтобы всунуть неотключаемое автомагическое разспознавание "по содержимому" в специфический инструмент, совершенно не предназначенный для альтернативно-одаренных?

    юниксвей забыт и предан забвению.

     
  • 2.6, kai3341 (ok), 03:59, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Казалось бы, ну каким альтернативноодаренным надо быть, чтобы всунуть неотключаемое автомагическое разспознавание "по содержимому" в специфический инструмент, совершенно не предназначенный для альтернативно-одаренных?

    Я хочу сыграть с тобой в одну игру. У меня к тебе 2 вопроса:
    1) Какое именно приложение и при каких условиях инициирует атаку?
    2) Как это приложение настроить, чтобы не инициировать атаку?

    Не ответишь на них правильно -- альтернативно-одаренным назначим тебя. Время пошло

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

    Я понимаю желание сделать универсальный продукт. И понимаю, что по неопытности можно не понять, как 'фича' превращается в дырищу (например, SQL injection -- классика). Но как этот код прошёл review?

    Также я понимаю желание разработчиков DE и imagemagic объединить как можно больше инструментов. Это правильно. И с их стороны косяка нет -- с их стороны всё работает штатно

     
     
  • 3.9, Аноним (-), 08:16, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > 2 вопроса:

    Давай я за него отвечу?

    > 1) Какое именно приложение и при каких условиях инициирует атаку?

    Например генератор превьюшек документов, внезапно. Который пользовался ghostscript'ом.

    > 2) Как это приложение настроить, чтобы не инициировать атаку?

    Снести к чертовой бабушке, например. Но это компромисс: превьюхи документов и картинок в файлобраузилке видно уже не будет, соответственно. А если кто не знал, удобство и безопасность, увы, часто живут по разную сторону баррикад.

    > Но как этот код прошёл review?

    Да вообще, как в софте баги появляются... люди же давно уже боги и никогда не ошибаются. А тут вдруг на тебе.

    > Также я понимаю желание разработчиков DE и imagemagic

    Да при чем тут imagemagic вообще, если проблема в GS? В нем конечно своих проблем хватает, но не в этот раз.

     
     
  • 4.17, пох (?), 10:20, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Да при чем тут imagemagic вообще, если проблема в GS? В нем

    при том что если бы он не занимался ненужным угадавом - gs бы даже не вызвался бы, и его проблемы никому бы ущерба не причинили.

    Наивных людей, разбирающих pdf'ы не на отдельной особо огороженной помойке, наверное, уже давно не осталось.

    > конечно своих проблем хватает, но не в этот раз.

    в этот, в этот.
    с gs все понятно - этот софт невозможно написать надежно в принципе, и уж тем более - починить тот, который написан в дивные древние дни, когда пароль писали прямо в баннер, его можно только с большей или меньшей долей риска изолировать.

     
     
  • 5.19, Аноним (-), 10:44, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > при том что если бы он не занимался ненужным угадавом - gs
    > бы даже не вызвался бы, и его проблемы никому бы ущерба не причинили.

    Ты хочешь чтобы монстры-переростки занимающиеся кучей дел не были бы монстрами-переростками? :)

    > Наивных людей, разбирающих pdf'ы не на отдельной особо огороженной помойке, наверное, уже
    > давно не осталось.

    Так давно есть контейнеры и виртуалки. При том все это доступно в типовых дистрах по умолчанию. Там еще и всякие apparmor или selinux бывают, так что несчастная смотрелка pdf'ок типа evince лишний раз даже файло открыть не может порой. Ну или вот tor в убунте не может pluggable transport запустить. Потому что нефиг видите ли сетевой программе новые процессы запускать. Это по своему логично, но...

    > с gs все понятно - этот софт невозможно написать надежно в принципе,

    Собственно, проблема человечества в том что оно вдарилось в оверинжерению и порасплодило дофига всяких навороченных форматов и протоколов. За что и страдает. Если кто парсит пару дюжин сверхнавороченных форматов - удачи ему нигде не накосячить. А всякие околотекстовые форматы вообще лучший друг Bobby Tables'а.

     
     
  • 6.22, пох (?), 11:03, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты хочешь чтобы монстры-переростки занимающиеся кучей дел

    да дело-то у imagic вполне ограниченное - портить изображение, ну и иногда зачем-то преобразовывать формат - альтернативный вариант, когда преобразовывалка работает только с каким-нибудь xbm, сопровождаясь букетом xbm2всякаяхрень и обратно - тебе вряд ли понравится, этим жутко неудобно пользоваться, особенно, когда оригинал потом нафиг и не уперся (мы это проходили двадцать лет назад с видео, и ffmpeg был счастьем на фоне тех инструментов, требовавших только yuv, который кроме них еще и не понимал ровно никто)

    > Так давно есть контейнеры

    это где S stands for security?
    С виртуалками в свете модных новых интеловских проблем - не сильно легче. Физическая изоляция - дорого и тяжело фэйловерить если что.

    > Там еще и всякие apparmor или selinux бывают

    пробовал писать модули к тому и к другому (не audit2allow, отключающий уже до тебя сделанные проверки, а полноценный)? Я вот пробовал, нифига не понравилось.
    А тут придется, авторы дистрибутива не в курсе, что у тебя в /srv/web/uploads/ можно читать, но не все, в ../preview можно только писать, и т д   и т п.

    > Собственно, проблема человечества в том что оно вдарилось в оверинжерению и порасплодило дофига
    > всяких навороченных форматов и протоколов.

    ну вот в данном случае - проблема сопровождалась вполне приемлемым решением - описывать формат в части имени файла, а не угадывать, хотя бы пока не просят. Но почему-то авторы пошли другим путем, их даже аналогичный эксплойт в file (в file, Карл!) ничему не научил.

     
     
  • 7.29, Аноним (29), 09:38, 13/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так понапридумывали форматов и вообще, GS много кем используется Я вижу с... большой текст свёрнут, показать
     
  • 6.24, пох (?), 11:07, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ps: но контекстом для gs надо бы, пожалуй, озаботиться
    чисто на всякий случай
     
  • 4.26, kai3341 (ok), 00:53, 13/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Но как этот код прошёл review?
    > Да вообще, как в софте баги появляются... люди же давно уже боги
    > и никогда не ошибаются. А тут вдруг на тебе.

    Так это не случайная ошибка же. Случайно дать возможность исполнять произвольный код by design нереально)

    >> Также я понимаю желание разработчиков DE и imagemagic
    > Да при чем тут imagemagic вообще, если проблема в GS? В нем
    > конечно своих проблем хватает, но не в этот раз.

    imagemagic всего лишь звено в этой цепочке. Генератор превьюх ведь не запускает GS сам -- он передаёт управление imagemagic. Со своей стороны imagemagic прав -- magic-типы заслуживают больше доверия, чем расширения. Инструмент (GS) задействуется при его наличии.

     
     
  • 5.30, Аноним (29), 09:47, 13/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Случайно дать возможность исполнять произвольный код by design нереально)

    Просто многие вещи, особенно старые, не создавались с security in mind. Ну вон в WMF вообще можно было принести машинный код. Фича это такая была. И те кто честно следовал спекам на формат (в основном сам MS) очень сильно радовались, когда хакерье накопало давно всеми забытую фичу и начало раздавать правильные файлы везде и всюду, например, в вебе. Где браузер чего доброго это попытается показать (и выполнит обработчик) вообще не спрашивая юзера про всякие глупости.

    Это же и unix way частично касается. Вызывать кучу программ из скриптов и перекидываться между ними данными - это круто и гибко. Но вот устойчивость этого процесса к враждебно настроенному источнику данных - весьма паршивая, например. Там довольно много чего может пойти не так.

    > imagemagic всего лишь звено в этой цепочке. Генератор превьюх ведь не запускает
    > GS сам -- он передаёт управление imagemagic.

    Вот это - совершенно не обязательно. И так огульно за все генераторы превьюх расписываться как они кого вызывают - форменное донкихотство. И вообще см. выше, тех кто GS пользуется я 4 страницы насчитал. Я бы не рискнул утверждать что они все imagemagic зовут. А вот GS они точно зовут, раз он в зависимостях есть.

     
  • 3.10, Аноним (10), 08:29, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >  Но как этот код прошёл review?

    Я бы задался вопросом, как изменить то, почему этого ревью _нет_?

     
     
  • 4.15, пох (?), 09:59, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    купить машину времени

    (кстати, заодно сравнишь - много ли пользы принесли бестолковые code review и бесконечные тесты в сравнении с затраченным на это временем)

     
  • 3.16, пох (?), 10:14, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Какое именно приложение и при каких условиях инициирует атаку?

    загрузчик юзерских фотографий, например.
    (необязательно художественных - это могут быть повреждения автомобиля при ДТП внутри сайта страховой - кстати, его многие хотят поломать)

    > Как это приложение настроить, чтобы не инициировать атаку?

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

    И обрабатывать файлы строго по именам. Если внутри png оказался pdf - значит юзеру не повезло, он его не увидит, и не должен. Софт не должен заниматься подобным автоугадавом, для того и предусмотрены у имен файлов - расширения. Если какой-то кривой сканер такое производит - значит он бракованный и юзера нужно заставить от него отказаться, а не выносить за ним горшок.

    > Другое дело, что встраивание в сам ghostscript возможности выполнить любую команду -- это очень
    > странно.

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

    P.S. теоретически, наверное, можно собрать у себя десяток imagemagic'ов под все распространенные форматы, обслуживающие строго ограниченный их набор. Наверное, жить с этим зоопарком проще, чем вручную удалять код, распознающий что не попадя.


     
     
  • 4.20, Аноним (-), 10:53, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > загрузчик юзерских фотографий, например.

    До него дело даже не дойдет - тебя поимеют еще тогда когда ты превьюху этого добра генерил, шарясь по дире с фотами. Если у тебя 500 фот в дире, ты наверное даты с точностью до секунд наизусть не заучивал, а 500 фот наугад клацать - сам понимаешь. Значит навороченный парсер попробует прожевать пару дюжин сложных форматов. И то что при этом никто нигде не накосячит - ну вот вообще совсем не факт. Вспомним WMF файлы, классика! И ведь сколько лет жило себе?

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

    Через добрецо типа ps вообще можно послать в принтеры чудную "распечатку" с фирмвар апдейтом...

     
     
  • 5.23, пох (?), 11:06, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> загрузчик юзерских фотографий, например.
    > До него дело даже не дойдет - тебя поимеют еще тогда когда
    > ты превьюху этого добра генерил, шарясь по дире с фотами. Если

    ну, собственно, превьюху при загрузке он и создает, что ж еще.

    > у тебя 500 фот в дире, ты наверное даты с точностью

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

     
     
  • 6.31, Аноним (-), 10:17, 13/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Я не понимаю кто такой загрузчик юзерских фотографий Сценарий с авто-поимение... большой текст свёрнут, показать
     
  • 4.27, KonstantinB (??), 04:04, 13/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >  может и не тьюринг-полный язык, но близкий к таковому.

    Цитаты великих людей.

     
  • 3.25, Ordu (ok), 18:14, 12/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Я хочу сыграть с тобой в одну игру.

    О, давай!

    > 1) Какое именно приложение и при каких условиях инициирует атаку?

    Если данную атаку инициирует приложение, но всяко не на стороне клиента. Да и скорее всего это не приложение: если человек скачивает специально подготовленный файлик с http-сервера, то глупо ведь говорить, что атака инициирована http-сервером?

    > 2) Как это приложение настроить, чтобы не инициировать атаку?

    В силу предыдущего ответа -- никак. Нет приложения инциирующего атаку.

    > Не ответишь на них правильно -- альтернативно-одаренным назначим тебя.

    Единственный альтернативно-одарённый тут -- это ты. Атака инициируется атакующим. Всё остальное, в том числе и дырявые приложения на стороне клиента -- не инициаторы, а объекты атаки. И если ты уж лезешь в поле it-безопасности со своими экспертными суждениями, ты хотя бы за языком-то следи, чтобы не пороть совсем уж чуши.

     

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



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

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