
PluckCMS 4.7.20 уязвимость Zip Slip привела к RCE
Данный отчёт документирует критическую уязвимость безопасности, обнаруженную в PluckCMS, которая позволяет аутентифицированным атакующим добиться удалённого выполнения кода с помощью атаки типа Zip Slip. Уязвимость существует в функциональности загрузки модулей и может быть использована путём загрузки специально созданного ZIP-архива, содержащего вредоносный PHP-код.
4.7.20
Тип уязвимости: Zip Slip, приводящий к удалённому выполнению кода (RCE)
Затронутый компонент: Система управления модулями (Настройки → Управление модулями)
Вектор атаки: Загрузка вредоносного ZIP-файла
Требуется аутентификация: Да (доступ к панели администратора)
Критичность: Критическая
Уязвимость вызвана недостаточной проверкой и очисткой содержимого ZIP-архива во время процесса загрузки модуля. PluckCMS позволяет администраторам загружать модули в формате ZIP без надлежащей проверки путей к файлам внутри архива. Это позволяет атакующему создать вредоносный ZIP-файл, использующий уязвимость обхода пути, что даёт возможность произвольного размещения файлов в файловой системе сервера.
При распаковке ZIP-архива приложение не проверяет, что распакованные файлы остаются в пределах предполагаемой структуры каталогов. Атакующий может использовать эту слабость для записи вредоносных PHP-файлов в доступные через веб-сервер расположения, а затем выполнять произвольный код на сервере.
Уязвимость может быть воспроизведена с использованием следующего окружения:
git clone https://github.com/pluck-cms/pluck.git
cd pluck
ddev config --project-type=php --docroot=.
ddev start
URL хостинга : http://pluck.ddev.site
В ходе тестирования использовалась нагрузка для доказательства концепции, демонстрирующая возможность выполнения команд. Нагрузка использует функции выполнения системных команд PHP для запуска команд операционной системы.
<?php
$fn = "sys" . "tem";
(string) $fn("id");
?>
Успешная эксплуатация этой уязвимости позволяет аутентифицированному атакующему с административным доступом:
Хотя для уязвимости требуется аутентификация администратора, она представляет критический риск безопасности, поскольку предоставляет прямой путь к полной компрометации системы.