CVE-2026-82035 в Debian: path traversal в PyMuPDF, затронутые версии и меры защиты

CVE: CVE-2026-82035
Продукт: Debian
Дата публикации: 14.09.2026
Критичность: HIGH
CVSS: 7.1 (4.0)
EPSS: нет данных; процентиль нет данных
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


В пакете pymupdf для Debian обнаружена уязвимость обхода путей (CWE-22) в функции extract_objects(). Атакующий может записать файлы за пределы целевой директории, передав специально сформированный документ. В Debian статус уязвимости во всех поддерживаемых релизах — open, исправление не выпущено.

Основные характеристики​


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

  • Тип ошибки: CWE-22 (Path Traversal). Отсутствует валидация имен файлов, полученных из содержимого документа.
  • CVSS 4.0: 7.1 (HIGH). Вектор: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X. Высокое влияние на целостность (VI:H) и низкое на доступность (VA:L).
  • Условия атаки: Требуется взаимодействие пользователя (UI:P) для открытия вредоносного файла. Аутентификация и привилегии не требуются (PR:N).
  • Эксплуатация: Публичные данные о подтвержденной эксплуатации в дикой природе отсутствуют.
  • EPSS: Данные не предоставлены в источниках.

Какие продукты и версии затронуты​


Уязвимость затрагивает пакет pymupdf в дистрибутиве Debian. Согласно Debian Security Tracker, во всех перечисленных ниже релизах статус уязвимости остается open, а приоритет (urgency) не присвоен. Исправленная версия в репозиториях Debian отсутствует.

  • bookworm: версия 1.21.1+ds1-1.
  • trixie: версия 1.25.4+ds1-3+deb13u1.
  • forky: версия 1.28.2+ds1-1.
  • sid (unstable): версия 1.28.2+ds1-1.

Все перечисленные версии содержат уязвимый код, так как фиксация в Debian еще не произведена.

Причина уязвимости​


Причина уязвимости кроется в функции extract_objects() в файле src/__main__.py.

При извлечении шрифтов (font branch) программа формирует имя выходного файла путем прямого присоединения имени BaseFont, взятого из метаданных документа, к директории, указанной пользователем.

Код не выполняет очистку (sanitization) имени файла: не удаляет последовательности ../ и не проверяет на абсолютные пути. Это нарушает границу доверия, позволяя данным из внешнего документа влиять на файловую систему за пределами целевой папки.

Как работает атака​


Атакующий создает документ (PDF, EPUB, XPS или FB2), в котором поле BaseFont содержит закодированные разделители путей или последовательности, декодирующиеся в ../ или абсолютные пути.

При обработке такого файла функцией extract_objects() PyMuPDF использует это имя для формирования пути к выходному файлу. Поскольку проверка на выход за пределы директории отсутствует, файл записывается в произвольное место файловой системы, доступное текущему пользователю.

Аутентификация не требуется, но для запуска процесса обработки необходимо, чтобы пользователь открыл вредоносный файл.

Условия успешной эксплуатации​


Для успешной эксплуатации уязвимости необходимо выполнить следующие условия:

  • Наличие установленной уязвимой версии пакета pymupdf.
  • Доступ к системе, где пользователь может открыть или обработать вредоносный документ.
  • Способность атакующего передать пользователю специально сформированный файл (PDF, EPUB, XPS, FB2).
  • Отсутствие механизмов, предотвращающих запись файлов в произвольные директории (например, строгие политики AppArmor или SELinux, если они не настроены на блокировку таких операций).

Возможный сценарий атаки​


Пользователь получает по электронной почте файл report.pdf.

При открытии файла в приложении, использующем PyMuPDF для извлечения объектов, срабатывает уязвимая логика. Имя шрифта из документа содержит последовательность, ведущую к записи файла в домашнюю директорию или системную папку.

В результате в системе появляется файл, контролируемый атакующим. Если этот файл будет исполнен или включен в конфигурацию, атакующий получит контроль над системой.

Есть ли публичный эксплойт​


В предоставленных источниках отсутствуют сведения о публичном эксплойте, PoC или подтвержденной эксплуатации в реальных атаках.

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

Признаки эксплуатации​


Специфичные индикаторы компрометации (IOC) для этой уязвимости в источниках не указаны.

Можно использовать общие, неспецифичные признаки:

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

Как обнаружить атаку​


Для обнаружения попытки эксплуатации рекомендуется:

  • Мониторить логи приложений, использующих PyMuPDF, на предмет ошибок или предупреждений при записи файлов.
  • Использовать инструменты контроля целостности файловой системы (FIM) для отслеживания создания новых файлов в критических директориях.
  • Анализировать сетевой трафик на предмет передачи документов с подозрительными метаданными, если это возможно в рамках корпоративной инфраструктуры.

Как проверить свою версию​


Для проверки установленной версии пакета pymupdf в Debian используйте следующие команды. Замените <имя-пакета> на pymupdf.

Bash:
cat /etc/debian_version
cat /etc/os-release
apt-cache policy pymupdf
dpkg-query -W -f='${Package} ${Version}\n' pymupdf

Сравните полученную версию с версиями, указанными в разделе «Какие продукты и версии затронуты». Если версия совпадает с одной из уязвимых, система подвержена риску.

Исправление​


Официального исправления в репозиториях Debian на текущий момент не существует. Статус уязвимости во всех релизах — open.

Рекомендуемые действия:

  • Отслеживать обновления в Debian Security Tracker: Debian Security Tracker — CVE-2026-82035.
  • При выходе исправленной версии пакета pymupdf немедленно обновить систему.
  • Рассмотреть возможность применения патча из репозитория разработчика, если это допустимо политикой безопасности организации.

Временные меры защиты​


Пока исправление не выпущено, можно принять следующие временные меры:

  • Ограничить обработку документов из недоверенных источников.
  • Запускать приложения, использующие PyMuPDF, в изолированных средах (контейнеры, виртуальные машины) с ограниченными правами записи в файловую систему.
  • Настроить механизмы контроля доступа (AppArmor, SELinux) для блокировки записи файлов в критические директории процессами, работающими с документами.

Как проверить устранение уязвимости​


После установки исправления (когда оно будет выпущено) необходимо:

  • Проверить версию пакета командой dpkg-query -W -f='${Package} ${Version}\n' pymupdf.
  • Убедиться, что версия соответствует исправленной, указанной в анонсе безопасности Debian.
  • Провести функциональное тестирование приложений, использующих PyMuPDF, для подтверждения корректной работы.

Вывод​


Уязвимость CVE-2026-82035 представляет собой серьезную угрозу для систем Debian, использующих PyMuPDF. Отсутствие валидации имен файлов позволяет атакующему записывать файлы за пределы целевой директории.

Поскольку исправление в Debian еще не выпущено, администраторам следует принять временные меры по ограничению обработки недоверенных документов и внимательно следить за обновлениями безопасности. При появлении патча его необходимо установить в приоритетном порядке.

Официальные источники​


  1. NVD — CVE-2026-82035
  2. Debian Security Tracker — CVE-2026-82035

История обновлений статьи​


  • 15.09.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ