Grav до 2.0.19 (затронутые версии <= 2.0.17) содержит уязвимость удаленного выполнения кода в фильтре сортировки Twig. Обертка sortFunc в GravExtension.php жестко кодирует аргумент isSandboxed Twig в значение false, поэтому в отличие от |map/|filter/|reduce, |sort принимает простое имя функции внутри песочницы; в оставшемся списке запретов отсутствует spl_autoload, который выполняет включение PHP. Аутентифицированный пользователь с правами только на запись страниц (admin.pages или api.pages.write) может предоставить специально созданную полезную нагрузку (например, через внешний вид формы, отображаемый подключаемым модулем электронной почты), которая вызывает spl_autoload через фильтр сортировки, что приводит к произвольному выполнению PHP от имени пользователя веб-сервера.
Показать оригинальное описание (EN)
Grav before 2.0.19 (affected versions <= 2.0.17) contains a remote code execution vulnerability in the Twig sort filter. The sortFunc wrapper in GravExtension.php hardcodes Twig's isSandboxed argument to false, so unlike |map/|filter/|reduce, |sort accepts a plain function name inside the sandbox; the remaining denylist misses spl_autoload, which performs a PHP include. An authenticated user with only page-write rights (admin.pages or api.pages.write) can supply a crafted payload (e.g., via form frontmatter rendered by the Email plugin) that invokes spl_autoload through the sort filter, resulting in arbitrary PHP execution as the web server user.
Характеристики атаки
Последствия
Строка CVSS v4.0