WordPress: Unauthenticated path traversal leading to conditional RCE
Уязвимость в WordPress позволяет неавторизованному атакующему выполнить произвольный код через путь обхода в функции get_page_template(). При определённых условиях атакующий может заставить систему включать локальный .php-файл за пределами активной темы, что при наличии уязвимого файла вроде pearcmd.php и включённой директивы register_argc_argv приводит к удалённому выполнению кода (RCE).
Для эксплуатации необходимо, чтобы активная тема (родительская или дочерняя) содержала каталог верхнего уровня, имя которого начинается с page- (например, page-templates). Это затрагивает темы Twenty Twelve, Twenty Fourteen и популярные сторонние темы вроде Neve, Hestia и Sydney. Кроме того, на сервере должен существовать читаемый веб-сервером .php-файл — например, pearcmd.php из PEAR, который при register_argc_argv=On позволяет достичь RCE. Уязвимы официальный Docker-образ PHP и стандартная конфигурация cPanel при использовании PHP ниже версии 8.5.
Проблема исправлена в WordPress 7.1.2, а также бэкендпортирована во все поддерживаемые ветки, начиная с версии 4.7. Уязвимость обнаружена и ответственно раскрыта Робертом Ressl.