Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ghostscript-CVE-2023-43115 — Небольшая статья с примерами для понимания CVE-2023-43115 | Kitploit
Инструменты/GitHubGitHub/jostaub/ghostscript-cve-2023-43115
Анализ уязвимостейЭксплуатацияСтатьи и ИсследованияОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubjostaub/ghostscript-cve-2023-43115

ghostscript-CVE-2023-43115

Небольшая статья с примерами для понимания CVE-2023-43115

Репозиторий

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
822 лет назадЕщё не проверено

ghostscript-CVE-2023-43115

Небольшая заметка с примерами, помогающая разобраться в CVE-2023-43115.

[!WARNING] Я написал это в основном для себя, чтобы понять проблему и научиться кибербезопасности. Поэтому здесь могут быть ошибки.

Проблема

Чтобы использовать устройство IJS (Improved Inkjet Printing), Ghostscript должен запустить IJS-сервер. Это делается с помощью пути, указанного в параметре IjsServer. Параметр IjsServer можно настроить так, чтобы он ссылался на любой файл в файловой системе, и Ghostscript затем выполняет указанный файл. Здесь легко увидеть, как этим можно злоупотребить: например, можно выполнить следующую команду ghostscript, чтобы вывести hello world.

root@kitploit:~
❯ gs -sDEVICE=ijs -sIjsServer="bash -c 'echo Hello World>&2'"
GPL Ghostscript 9.55.0 (2021-09-27)
Copyright (C) 2021 Artifex Software, Inc.  All rights reserved.
This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
see the file COPYING for details.
Hello World

Само по себе это не так уж проблематично, поскольку этот параметр должен быть указан пользователем. Однако также можно задать это устройство и параметр IjsServer внутри PostScript-скрипта. Смотрите, например, attack_example_*.ps (выполняется с помощью gs FILENAME). Это, в свою очередь, может позволить атакующему выполнить код на машине, запускающей этот скрипт. Но эта проблема известна и официально документирована, и её можно предотвратить, установив LockSafetyParams в значение true.

Чтобы использовать эту CVE при включённом LockSafetyParams, атакующему понадобится рабочий эксплойт для изменения LockSafetyParams. Однако, если такой эксплойт доступен, в зависимости от версии может существовать ряд других возможных векторов атак.

Исправление

Автор исправления Кен Шарп назвал упомянутое решение безопасности LockSafetyParams хакерским, поскольку оно реализовано в PostScript и, следовательно, уязвимо для PostScript-кода. Это привело к нескольким проблемам безопасности в прошлом, когда можно было перезаписать этот параметр (пример см. в описании CVE-2018-19475. Исправление меняет механизм защиты, который предотвращает установку пути IjsServer, с LockSaftyParams на новый параметр -dSAFER, на который PostScript-код повлиять не может.

[!NOTE] В документации уязвимой версии 9.55.0 уже указано использование параметра -dSAFER, что, по-видимому, является ошибкой документации.

Источники и дополнительное чтение

  • CVE-2023-43115
  • Коммит с исправлением
  • Разбор CVE-2018-19475
  • Документация IJS
  • Документация LockSaftyParams
Скачать инструмент