В PHP-библиотеке Dompdf с открытым исходным кодом обнаружена серьезная уязвимость, которая в случае успешного использования может привести к удаленному выполнению кода на целевом сервере.
Отслеживаемая как CVE-2023-23924 (оценка CVSS: 10), ошибка затрагивает все версии библиотеки, включая 2.0.1 и ниже, и была устранена в выпущенной вчера версии 2.0.2.
Dompdf — конвертер HTML в PDF. По своей сути, dompdf — это (в основном) CSS 2.1 -совместимый HTML-макет и движок рендеринга, написанный на PHP. Это визуализатор, управляемый стилями: он загружает и считывает внешние таблицы стилей, встроенные теги стилей и атрибуты стиля отдельных элементов HTML. Он также поддерживает большинство презентационных атрибутов HTML. Он имеет более 65 миллионов загрузок в репозитории пакетов PHP packagist .
« Проверку URI в dompdf 2.0.1 можно обойти при синтаксическом анализе SVG, передав <image>
теги с заглавными буквами. Это может привести к десериализации произвольного объекта на PHP < 8 через phar
оболочку URL», — добавил Бсуини.
Таким образом, возможность удалять произвольные файлы на сервере может нарушить гарантии конфиденциальности и целостности, что потенциально позволит злоумышленнику перезаписать произвольные файлы на хосте и выполнить любое вредоносное действие.
PoC для запуска CVE-2023-23924 очень прост
Пользователям dompdf рекомендуется как можно скорее обновиться до версии 2.0.2.
« Злоумышленник может использовать уязвимость для вызова произвольного URL-адреса с произвольными протоколами, если он может предоставить файл SVG для dompdf. В версиях PHP до 8.0.0 это приводит к произвольной десериализации, что приводит как минимум к произвольному удалению файла и может привести к удаленному выполнению кода, в зависимости от доступных классов », — написал разработчик Бсуини в бюллетенях.