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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-64512-Polyglot-PoC — Доказательство концепции для CVE-2025-64512 с использованием полиглот-файла. | Kitploit
Инструменты/GitHubGitHub/luigigubello/cve-2025-64512-polyglot-poc
Анализ уязвимостейЭксплуатацияВеб-безопасностьОбучение и ОбразованиеРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubluigigubello/cve-2025-64512-polyglot-poc

CVE-2025-64512-Polyglot-PoC

Доказательство концепции для CVE-2025-64512 с использованием полиглот-файла.

Популярное

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

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

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

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

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

CVE-2025-64512 Полиглот-пейлоад

За последние недели (в ноябре 2025 года) была раскрыта интересная уязвимость (CVE-2025-64512) в pdfminer.six, популярном Python-проекте для обработки PDF-файлов, который используется, в частности, в AI-пайплайнах. Уязвимость позволяет удалённо выполнять код путём десериализации недоверенных данных через pickle.loads(), используя PDF-файл как вектор атаки. Пока всё хорошо: это важная уязвимость в популярном пакете Python. Моё внимание привлекла её эксплуатабельность 👀.

В системах, подобных Linux, могут быть разрешены только файлы, находящиеся в файловой системе. Злоумышленнику необходимо предоставить вредоносный PDF-файл для обработки, а вредоносный pickle-файл должен присутствовать в целевой системе в месте, которое злоумышленник уже знает, поскольку его нужно указать в самом PDF. Во многих случаях это будет сложно эксплуатировать, потому что даже если злоумышленник предоставляет и PDF, и pickle-файл вместе, нет способа заранее узнать полный путь к pickle-файлу. [...] В целом, на Linux или подобных Linux системах риск обычно ниже.

Итак, для эксплуатации этой уязвимости на системе, подобной Linux, злоумышленнику необходимо:

  • Загрузить или предоставить вредоносный PDF-файл и вредоносный pickle-файл в уязвимую систему;
  • Знать расположение (путь) вредоносного pickle-файла в уязвимой системе.

Можем ли мы создать корректный PDF-файл, который инициирует уязвимость, не зная пути к вредоносному pickle-файлу?

«Корректный» означает, что pdfminer.six не отвергает файл и начинает его обрабатывать (потому что PDF-файл — это то, что открывает программа для просмотра PDF).

Ответ — Да, создав полиглот-пейлоад (своего рода). Идея заключается в том, чтобы создать файл, который одновременно является корректным pickle.gz и корректным PDF-файлом, чтобы pdf2txt.py мог начать обработку PDF-файла, а затем указать на него для загрузки pickle-кода в формате GZIP.

Часто — но не всегда 🥲 — файл является PDF-файлом, если он содержит %PDF- где-то, как правило, в первых 1024 байтах (1 — 2). Для pdfminer.six корректный PDF-файл должен просто иметь объект /Root (pdfdocument.py#L752). Файл GZIP имеет определённые начальные байты (RFC 1952 — Sec. 2.3.1), но он поддерживает комментарии (FCOMMENT, RFC 1952 — Sec. 2.3.1).

Итак, вот дизайн полиглот-файла: создайте корректный GZIP, содержащий вредоносную pickle-полезную нагрузку, и встройте в него корректный PDF-файл через флаг FCOMMENT в GZIP. Затем используйте этот файл как корректный PDF с помощью pdf2txt.py, чтобы инициировать уязвимость, и используйте тот же файл для выполнения вредоносного pickle.

(2025.12.12) РЕДАКТИРОВАНИЕ:

Единственное ограничение, которое у нас есть, — это имя файла: оно должно заканчиваться на .pickle.gz (это заложено в коде pdfminer.six, cmapdb.py#L235).

У нас есть два ограничения:

  • Имя файла: оно должно заканчиваться на .pickle.gz (это заложено в коде pdfminer.six, cmapdb.py#L235);
  • Расположение PDF: мы всё ещё должны знать расположение PDF-файла в уязвимой системе.

Я немного удивлён, что этот CVE так недооценён, учитывая популярность этого проекта (6k ⭐️ на GitHub, но используется 34k проектами, согласно статистике GitHub) и сценарии использования (инструменты командной строки, AI-рабочие процессы, пайплайны — в общем, все виды инфраструктуры, которую не хочется обновлять, если она работает исправно).

Например, инструмент Microsoft markitdown 0.1.3 (microsoft/markitdown, 84k ⭐️ на GitHub и используется 2k проектами), установленный до 1 декабря, уязвим к произвольному выполнению кода через pdfminer.six. Команда Microsoft выпустила патч 1 декабря, 0.1.4, но без уведомлений о безопасности, поэтому я не думаю, что обновление было приоритетно для других инженерных команд.

Другие проекты также могут быть затронуты CVE-2025-64512, и его довольно легко эксплуатировать.

Уязвимые проекты

Неполный список уязвимых проектов:

  • pdfminer.six (20250506) (исправлено в 20251107)
  • markitdown (0.1.3) (исправлено в 0.1.4)
  • pdfplumber (0.11.7) (исправлено в 0.11.8)

PoC для pdf2txt.py 20250506

root@kitploit:~
docker build -t cve-2025-64512-poc .  
docker run --rm -it cve-2025-64512-poc
pdf2txt.py payload.pickle.gz

PoC для markitdown 0.1.3

root@kitploit:~
docker build -t cve-2025-64512-poc .  
docker run --rm -it cve-2025-64512-poc
markitdown markitdown-payload.pickle.gz -x pdf -o output.md

Видео

poc.gif

Скачать инструмент