Средний6.9
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

PT-2025-135: Чтение локальных файлов в mPDF

Тип ошибки:

  • CWE-20:Improper Input Validation

Вектор уязвимости:

  • Базовый вектор уязвимости (CVSSv4.0): CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

  • Уровень критичности уязвимости (CVSSv4.0): 6.9 (Medium)

Описание уязвимости:

В mPDF была выявлена проблема, затрагивающая версию 8.2.5.

Уязвимость библиотеки mPDF связана с недостаточной проверкой вводимых данных. Эксплуатация уязвимости может позволить нарушителю читать произвольные файлы.

Статус уязвимости: Подтверждена в ходе исследований

Дата выявления уязвимости: 11.04.2025

Рекомендации:

Меры по митигации эксплуатации уязвимости:

1. Санитизация HTML

  • Удаление скриптов и фреймов: Используйте надежные библиотеки для санитизации (например, Bleach для Python, HTML Purifier для PHP, или DOMPurify для JS);

  • Белый список тегов: Разрешить только базовые и \"безопасные\" теги (<b>, <i>, <p>);

  • Очистка ссылок: Удаляйте атрибуты, которые могут вести к локальным файлам или внутренним ресурсам.

2. "Подготовленный шаблон":

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

3. Конфигурация библиотеки

  • Отключение доступа к локальным файлам;
  • Отключение JavaScript;
  • Отключение внешних ресурсов: По возможности запретить загрузку внешних изображений и CSS.

4. Минимизация пользовательских привилегий. Запуск процессов от имени пользователя с доступом «только на чтение» к пустой директории. Это предотвратит чтение системных файлов через Path Traversal.

5. Запуск генератора в отдельном контейнере и последующее ограничение доступа контейнера к внутренней сети компании и сети Интернет.

6. Использование средств межсетевого экранирования для ограничения возможности удалённого доступа к устройствам.

7. Перенос генерации PDF на сторону клиента (браузера пользователя) с помощью библиотек типа jsPDF.

Исследователь: Никита Свешников (Positive Technologies)

Идентификаторы:

BDU:2025-16213

Вендор:

Ian N Back

Уязвимый продукт:

mPDF