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

Несколько лет назад дней они выпустили новости из того, что было идентифицировано уязвимость в Ghostscript (CVE-2020-15900) что могло вызвать модификацию файла и выполнение произвольной команды при открытии специально отформатированных документов PostScript.

Тем, кто не знаком с Ghostscript, следует знать, что это механизм рендеринга для содержимого Postscript и PDF и обычно используется для преобразования документов PDF и Postscript в изображения для предварительного просмотра, миниатюр и печати.

Он также используется для воспроизведения документов в полном качестве для многих программ просмотра PDF, включая популярные программы просмотра на Android, и лицензирован несколькими крупными компаниями, такими как Google, для рендеринга в облаке.

Об уязвимости в Ghostscript

Обнаружена ошибка при использовании оператора rsearch. Нестандартный PostScript в документе, который позволяет вызвать переполнение типа uint32_t при расчете размера, перезаписывать области памяти из буфера назначается и получает доступ к файлам в файловой системе, что может быть использовано для организации атаки с целью выполнения произвольного кода в системе (например, путем добавления команд в ~ / .bashrc или ~ / .profile).

Фрагмент, найденный AFL, поместил в стек пустую строку: пустые скобки () скопировали ссылку на нее, в результате получился стек с двумя пустыми строками () (), а затем был выполнен обратный поиск. Другими словами, он искал пустую строку в пустой строке, начиная с конца.

К сожалению, они упустили пограничный случай, когда ищется пустая строка. При поиске пустой строки это определяется как немедленный успех: искать нечего, поэтому мы переходим к концу. Однако результат должен быть разделен на значения до, после и после совпадения. К сожалению, код предполагал, что мы просмотрели хотя бы один раз и неправильно вычислили длину результата после матча, вычтя единицу из нуля, что привело к возврату к максимальному значению: 4,294,967,295 XNUMX XNUMX XNUMX.

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

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

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

Для успешной атаки во многих случаях достаточно просто загрузить файл эксплойта или просмотреть каталог с ним в Nautilus.

Уязвимости в Ghostscript также можно использовать через драйверы образов. на основе пакетов ImageMagick и GraphicsMagick, передавая файл JPEG или PNG, который содержит код PostScript вместо изображения (этот файл будет обрабатываться в Ghostscript, поскольку тип MIME распознается содержимым и не зависит от расширения).

Решение

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

Но исправление уже было предложено в версии 9.52.1 в дополнение к этому иобновления были опубликованы пакетов исправлений для некоторых дистрибутивов Linux, таких как Debian, Ubuntu и SUSE.

В то время как пакеты в RHEL не затрагиваются.

источник: https://insomniasec.com


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.