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

BDU:2025-16210

CVSS: 4.9
23.04.2025

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

Уязвимость библиотеки для создания и редактирования PDF-документов OpenPDF связана с недостаточной проверкой вводимых данных. Эксплуатация уязвимости может позволить нарушителю читать произвольные файлы
Статус уязвимости:
Подтверждена в ходе исследований
Информация об устранении отсутствует
Дата выявления: 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-20 Некорректная проверка входных данных

CVSS

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

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