Wordfence обнаружил три критических уязвимости в плагине PHP Everywhere, который помогает администраторам сайтов на WordPress внедрять PHP-код на страницы, посты, боковую панель или любой блок Gutenberg. По шакале уязвимости уровень угрозы максимальный и составляет 9.9 баллов.
Эти ошибки могут использоваться для удаленного выполнения кода на сайтах, причем в одном случае сделать это могут простые подписчики:
Уязвимость CVE-2022-24663 позволяет пользователю (даже с низкими привилегиями) отправлять плагину запрос с параметром shortcode и выполнять произвольный код PHP на сайте.
Уязвимость CVE-2022-24664 разрешает участникам добавлять посты с использованием метабокса PHP Everywhere.
Уязвимость CVE-2022-24665 связана с возможностью использовать блоки Gutenberg в PHP Everywhere.
Данный плагин применяют 30 тысяч сайтов, а найденные ошибки эксперты оценили в 9,9 баллов из 10 возможных по шкале уязвимостей CVSS. В Wordfence рекомендуют обновить плагин PHP Everywhere до последней исправленной версии 3.0.0.
PHP Everywhere-это плагин WordPress, который предназначен для того, чтобы владельцы сайтов могли выполнять PHP-код в любом месте своего сайта. Он включал функциональность, которая позволяла выполнять фрагменты кода PHP с помощью шорткодов WordPress. К сожалению, WordPress позволяет любым аутентифицированным пользователям выполнять шорткоды с помощью действия parse-media-shortcodeAJAX, а некоторые плагины также разрешают выполнение шорткода без проверки подлинности.
Таким образом, любой вошедший в систему пользователь, даже пользователь почти без разрешений, такой как Подписчик или Клиент, мог выполнить произвольный PHP на сайте, отправив запрос с shortcodeпараметром, установленным на [php_everywhere]<arbitrary PHP>[/php_everywhere]. Выполнение произвольного PHP на сайте обычно позволяет полностью захватить сайт.
По умолчанию плагин PHP Everywhere разрешал всем пользователям, имеющим edit_postsвозможность использовать метабокс PHP Everywhere.
К сожалению, это означало, что пользователи уровня ненадежных участников могли использовать метабокс PHP Everywhere для выполнения кода на сайте путем создания поста, добавления кода PHP в метабокс PHP Everywhere, а затем предварительного просмотра поста. Хотя эта уязвимость имеет ту же оценку CVSS, что и уязвимость шорткода, она менее серьезна, поскольку требует разрешений на уровне участника, которые подразумевают некоторую степень доверия и которые труднее получить, чем разрешения на уровне подписчика. Это связано с системой оценки CVSS, которая не допускает «Средний» в поле «Необходимые привилегии».