The OpenNET Project / Index page

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

Уязвимость в Ghostscript, позволяющая выполнить код при открытии PostScript-документа

10.08.2020 10:13

В Ghostscript, наборе инструментов для обработки, преобразования и генерации документов в форматах PostScript и PDF, выявлена уязвимость (CVE-2020-15900), которая может привести к изменению файлов и запуску произвольных команд при открытии специально оформленных документов в формате PostScript. Использование в документе нестандартного PostScript-оператора rsearch позволяет вызвать переполнение типа uint32_t при вычислении размера, переписать области памяти вне выделенного буфера и получить доступ к файлам в ФС, что можно использовать для организации атаки для выполнения произвольного кода в системе (например, через добавление команд в ~/.bashrc или ~/.profile).

Проблема затрагивает выпуски с 9.50 по 9.52 (ошибка присутствует начиная с выпуска 9.28rc1, но, по данным выявивших уязвимость исследователей, проявляется с версии 9.50). Исправление предложено в выпуске 9.52.1 (патч). Обновления пакетов с исправлением уже выпущены для Debian, Ubuntu, SUSE. Пакеты в RHEL проблемы не подвержены.

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

  1. Главная ссылка к новости (https://insomniasec.com/blog/g...)
  2. OpenNews: Очередные 4 уязвимости в Ghostscript
  3. OpenNews: Новая уязвимость в Ghostscript
  4. OpenNews: Очередные критические уязвимости в Ghostscript
  5. OpenNews: Новая критическая уязвимость в Ghostscript, эксплуатируемая через ImageMagick
  6. OpenNews: В Ghostscript 9.26 устранена очередная порция уязвимостей
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/53480-ghostscript
Ключевые слова: ghostscript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (40) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Гусь (?), 10:24, 10/08/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –6 +/
     
  • 1.2, Аноним (2), 10:29, 10/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Пора уже сделать drop-in замену для ghostscript, взяв от него API, а от memory-safe библиотеки - движок.
     
     
  • 2.4, YetAnotherOnanym (ok), 10:38, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Правильно! Делай!
     
  • 2.8, kai3341 (ok), 11:02, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Там основная проблема в самом API
     
  • 2.15, Andrey (??), 11:52, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У GhostScript нет API, это интерпретатор языка программирования PostScript. Если и заботиться о безопасности, то надо запускать его в изолированном окружении.
     
     
  • 3.20, пох. (?), 12:18, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    они так и делают. Но почему-то каждый раз выясняется, что из этой изоляции можно сбежать.

     
     
  • 4.47, Аноним (47), 20:29, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Php вон типа изолированный. Но в каждой первой версии очередного wordpress плагина все-равно выясняется что навебмакачить - можно. А конкретно ghastscript вообще стремноват на уровне идеи.
     
     
  • 5.60, пох. (?), 14:55, 11/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Php вон типа изолированный.

    вот ни разу. Абсолютно ничем не изолированный, если ты сам только не изолируешь уже его интерпретатор.

    Изолированная слегка у нас жабка - да и то, с особенностями (то есть можно писать изолированное, а можно и полнофункциональное, хоть lvmом из него рули)

    А вот конкретно gs в силу специального назначения всегда исполнялся в sandbox'ике. Но, поскольку писали интерпретатор в дивные древние дни, а переписать, в виду некоторой нетривиальности, некому - скажи фак и выходи.

     
  • 3.57, Аноним (2), 08:40, 11/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Есть невообразимо отвратительное API, которое просто пробрасывает консольный интерфейс и позволяет рендерить в память и не создавать лишние процессы.

    Используется во сновном для рендеринга пдфок в картинку с носледующим отоброжением оной. Это и pdfbox умеет.

     

  • 1.5, Аноним (5), 10:58, 10/08/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     

     ....ответы скрыты (2)

  • 1.10, Аноним (10), 11:04, 10/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ghostscript - интерпретатор postscript.
    postscript - полный по Тьюрингу язык.
    Так что выполнение произвольного кода есть "из коробки".
     
     
  • 2.11, None (??), 11:13, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как в том анекдоте "но есть один нюанс".
    Произвольного в пределах этой среды, или нативно в ОС.
     
  • 2.41, fuggy (ok), 17:12, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Зачем для декларативных документов нужен Тьюринг полный язык.
    Может быть чтобы нарисовать 5 кружков в цикле максимум.
    Почему-то TeX и Groff, при тех же возможностях по форматированию документов и вроде бы доказанной Тьюринг полноты, позволяет не выползать из коробки.
     
     
  • 3.48, Аноним (47), 20:31, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем для декларативных документов нужен Тьюринг полный язык.

    Чтобы интерпретатор был больше и непредсказуемее. Еще спросите нафига одним CSS можно накодить game of life, чтоли, и какие там еще клеточные автоматы.

     
     
  • 4.52, Аноним (52), 20:44, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Чтобы интерпретатор был больше и непредсказуемее.

    Зачастую — ровно наоборот. Сложность выносится в скрипты, а интерпретатор остаётся сравнительно простым.

     
     
  • 5.53, Аноним (-), 20:58, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Поэтому бонусом вас поимеют не только через интерпретатор, но и через навороченные скрипты. И получается как у мозилы с js просмотрщиком, когда ремота вплевывает вам скрипт, тот прорубается работать с правами морды просмотрщика и далее хреначит по системе с правами текущего пользователя, делая все что пожелал. На практике желали в основном стырить логины-пароли-ключи и прочие биткоинвалеты где деньги лежат.
     
  • 2.58, Аноним (2), 08:44, 11/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ghostscript в основном используется для рендеринга PDFок. А в стандарте на pdf сказано, что там postscript не должен быть Тьюринг-полным.

    Есть нюанс - согласно докам (которые могут быть неполными), ghostscript не позволяет явно выбрать тип документа, вместо этого он сам его детектит.

     

  • 1.14, Аноним (14), 11:50, 10/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Никогда не было и вот опять. Я уже лет 10 его отовсюду старательно удаляю и ммм пытаюсь изолировать. Пдфки тоже опасно открывать, кстати.
     
     
  • 2.19, Аноним (52), 12:08, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    КСЖ
     

  • 1.26, Аноним (26), 13:08, 10/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А разве в Наутилусе тамбнейлер по-умолчанию не изолирован с помощью bubblewrap? Разве не для таких случаев в ынтерпрайз-дистрах используют SELinux и AppArmor? Даже я, Честный Анонимус, которому нечего скрывать, давно себе написал AppArmor-профиль на tumblerd в Arch/Xfce/Thunar, чтобы зарезать доступ к /home, /tmp, /proc и сети по-максимуму.
     
     
  • 2.51, Аноним (51), 20:42, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    apparmor требует python, поэтому у меня выпилен. Насчет libapparmor не знаю, он остался.
     
     
  • 3.54, Аноним (-), 20:58, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    питон сам по себе вулн - половина кулхацкерских потуг без него элементарно не работает 8)
     
  • 2.55, Аноним (55), 23:09, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Селинукс настоящие девляпсы выключают в момент создания виртуалки.

    Т.к. не умеют готовить.

     
     
  • 3.56, Аноним (5), 05:33, 11/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Python зло
     

  • 1.31, Аноним (30), 14:01, 10/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Пакеты в RHEL проблемы не подвержены.<

    Что то подозрительно часто они ничему не подвержены

     
     
  • 2.33, Аноним (33), 14:34, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Просто они используют старые версии, а дыры последнее время всплывают в новых (это не плохо, а наоборот хорошо - ведётся независимый аудит новых версий и дыры в них успевают найти раньше включения в enterprise дистрибутив).
     
  • 2.40, Нанобот (ok), 16:50, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    вот что бывает, когда делом занимаются профессионалы
     
     
  • 3.45, Аноним (45), 19:25, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    RH ещё не доросли до новых версий.
     

  • 1.35, Аноним (35), 14:35, 10/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Наделают лишнего функционала там где его не нужно и который никем не используется - а потом уязвимости десятилетиям разгребают.
     
  • 1.38, Аноним (45), 16:44, 10/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Мурзилка ещё не переписывает гхост на раст?
     
     
  • 2.50, Аноним (47), 20:34, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Они уже просмотрщик пдфин на JS переписали, спасибо! Мало того что тот стал тупить и жрать оперативу как не в себя - так потом оказалось что он еще может кроссплатформенные трояны на JS запускать, тудыть-растудыть. С правами доступа как у "системного" кода браузера, $%^!
     
  • 2.59, Аноним (2), 08:45, 11/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем этот говнокод переписывать? Если что и переписывать - так это pdfbox.
     

  • 1.42, Корец (?), 17:14, 10/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Это какая новость по счёту уже?
     
     
  • 2.43, Аноним (43), 17:22, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    53480-ая
     
     
  • 3.44, Корец (?), 18:31, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я имел в виду про уязвимости в этой поделке. Мне казалось, что это более, чем очевидно :(
     
     
  • 4.46, Аноним (52), 19:39, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В этом году — первая.
    https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=ghostscript
     
     
  • 5.49, Аноним (47), 20:31, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, кстати, 1 дырка за более чем полгода в ТАКОЙ мегамонстриле - это не так уж и позорно, пожалуй.
     
     
  • 6.61, Kuromi (ok), 03:00, 12/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зато в прошлом году дыру каждую неделю находили.
     

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



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

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