В WordPress-дополнении UpdraftPlus, имеющем более 3 млн активных установок, выявлена опасная уязвимость (CVE-2022-0633), позволяющая стороннему пользователю загрузить копию базы данных сайта, в которой кроме контента содержатся параметры всех пользователей и хэши паролей. Проблема устранена в выпусках 1.22.3 и 2.22.3, которое рекомендуется как можно скорее установить всем пользователям UpdraftPlus.
UpdraftPlus преподносится как наиболее популярное дополнение для создания резервных копий сайтов, работающих под управлением платформы WordPress. Из-за некорректной проверки прав доступа дополнение позволяло загрузить резервную копию сайта и связанную с ней базу данных не только администраторам, но и любому зарегистрированному на сайте пользователю, например, имеющему статус подписчика.
Для загрузки резервных копий в UpdraftPlus используется идентификатор, генерируемый на основе времени создания резервной копии и случайной последовательности (nonce). Проблема в том, что из-за отсутствия должных проверок в обработчике heartbeat-запросов WordPress, при помощи специально оформленного запроса любой пользователь может получить информацию о последней резервной копии, которая в том числе включает сведения о времени и привязанной случайной последовательности.
Далее на основе полученной информации можно сформировать идентификатор и загрузить резервную копию, воспользовавшись методом загрузки по email. Используемая при данном методе функция maybe_download_backup_from_email требует обращения к странице options-general.php, доступной только администратору. Тем не менее, атакующий может обойти данное ограничение через спуфинг используемой при проверке переменной $pagenow и отправку запроса через служебную страницу, допускающую обращение непривилегированных пользователей. Например, можно обратиться через страницу отправки сообщения администратору, отправив запрос в виде “wp-admin/admin-post.php/%0A/wp-admin/options-general.php?page=updraftplus”.