Панель администратора Pluck CMS полагается исключительно на сравнение заголовков Referer (requestedByTheSameDomain() в data/inc/functions.admin.php, ограничивая каждое действие admin.php) для защиты CSRF, без каких-либо токенов анти-CSRF для каждого запроса где-либо в области администрирования. Когда запрос не содержит информации Referer/Host, ветвь elseif функции возвращает true, рассматривая запрос как тот же источник. Поскольку страница межсайтового злоумышленника может подавить заголовок Referer (например, с помощью <meta name=referrer content=no-referrer>), она может заставить браузер аутентифицированного администратора отправлять поддельные действия администратора без действительного Referer, включая создание страниц с необработанным HTML (сохраненным XSS через отображаемую страницу) и установку модулей/тем PHP (удаленное выполнение кода).
Показать оригинальное описание (EN)
Pluck CMS's admin panel relies solely on a Referer-header comparison (requestedByTheSameDomain() in data/inc/functions.admin.php, gating every admin.php action) for CSRF protection, with no per-request anti-CSRF token anywhere in the admin area. When a request carries no Referer/Host information, the function's elseif branch returns true, treating the request as same-origin. Because a cross-site attacker page can suppress the Referer header (e.g. via <meta name=referrer content=no-referrer>), it can force an authenticated administrator's browser to submit forged admin actions with no valid Referer, including creating pages with raw HTML (stored XSS via the rendered page) and installing PHP modules/themes (remote code execution).
Характеристики атаки
Последствия
Строка CVSS v3.1