Куда я попал?
SECURITM это SGRC система, ? автоматизирующая процессы в службах информационной безопасности. SECURITM помогает построить и управлять ИСПДн, КИИ, ГИС, СМИБ/СУИБ, банковскими системами защиты.
А еще SECURITM это место для обмена опытом и наработками для служб безопасности.

BDU:2025-16209

CVSS: 5
23.04.2025

Уязвимость библиотеки для создания и редактирования PDF-документов OpenPDF, связанная с недостаточной проверкой запросов на стороне сервера, позволяющая нарушителю осуществить SSRF-атаку

Уязвимость библиотеки для создания и редактирования PDF-документов OpenPDF связана с недостаточной проверкой запросов на стороне сервера. Эксплуатация уязвимости может позволить нарушителю, действующему удаленно, осуществить SSRF-атаку
Статус уязвимости:
Подтверждена в ходе исследований
Информация об устранении отсутствует
Дата выявления: 23.04.2025
Класс уязвимости: Уязвимость кода
Наличие эксплойта: Данные уточняются
Способ эксплуатации: Подмена при взаимодействии
Способ устранения: Нет данных
Меры по устранению: Компенсирующие меры:
1. Санитизация HTML-кода перед передачей его в библиотеку:
1.1. Удаление скриптов и фреймов: Используйте надежные библиотеки для санитизации (например, Bleach для Python, HTML Purifier для PHP, или DOMPurify для JS).
1.2. Белый список тегов: Разрешить только базовые и "безопасные" теги (<b>, <i>, <p>). Полностью блокировать <iframe>, <script>, <link>, <embed>, <object>.
1.3. Очистка ссылок: Удаляйте атрибуты, которые могут вести к локальным файлам или внутренним ресурсам (например, src="file:///etc/passwd").
2. Использование подготовленного шаблона для размещения данных от пользователя и дальнейшей генерации PDF документа. Особое внимание необходимо уделить данным, передаваемым от пользователя. Они должны проходить строжайшую санитизацию. Если пользователь передает адрес картинки или тег img с атрибутом src, то необходимо проверить, что в URL начинается с http/https схемы (пункт 1.3), URL адрес не указывает на внутренний адрес при серверной генерации (к примеру 127.0.0.1), или путь до изображения не выходит за пределы DOCUMENT_ROOT или не запрашивается файл, к которому доступа не должно быть у текущего пользователя.
3.1. Отключение доступа к локальным файлам: Например, флаг --disable-local-file-access в wkhtmltopdf.
3.2. Отключение JavaScript: Если PDF не требует динамического рендеринга, используйте --disable-javascript.
3.3. Отключение внешних ресурсов: По возможности запретить загрузку внешних изображений и CSS (--no-images или isRemoteEnabled = false).
4. Минимизация пользовательских привилегий. Запуск процессов от имени пользователя с доступом «только на чтение» к пустой директории. Это предотвратит чтение системных файлов через Path Traversal. (При запросе изображения, должна быть проверка на разрешение текущего пользователя запрашивать такое изображение)
5. Запуск генератора в отдельном контейнере и последующее органичение доступа контейнера к внутренней сети компании и сети Интернет;
6. Использование средств межсетевого экранирования для ограничения возможности удалённого доступа к устройствам;
7. Перенос генерации PDF на сторону клиента (браузера пользователя) с помощью библиотек типа jsPDF.
Прочая информация: Уязвимость выявлена исследователем: Алексей Соловьев (Positive Technologies).

Идентификатор типа ошибки

Идентификатор, установленный в соответствии с общим перечнем ошибок CWE
Идентификатор Описание
CWE-918 The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.

CVSS

Система общей оценки уязвимостей
Оценка Severity Версия Базовый вектор
5 MEDIUM 2.0 AV:N/AC:L/Au:N/C:P/I:N/A:N
Вендор:
  • LibrePDF
Тип ПО:
  • Прикладное ПО информационных систем
Наименование ПО:
  • OpenPDF
Версия ПО:
  • 2.0.3 (OpenPDF)
Ссылки на источники:

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