Xakep #305. Многошаговые SQL-инъекции
Один из самых популярных плагинов для WordPress, Essential Addons for Elementor, оказался уязвим для неаутентифицированного повышения привилегий, что позволяло злоумышленникам получить на уязвимом сайте права администратора. Essential Addons for Elementor представляет собой библиотеку из 90 расширений для популярнейшего конструктора страниц Elementor, который используется более чем на 1 000 000 сайтов.
Проблему 8 мая 2023 года обнаружили специалисты PatchStack. Уязвимость получила идентификатор CVE-2023-32243. Сообщается, что она помогает повысить привилегии без аутентификации и связана с функцией сброса пароля в плагине, затрагивая версии с 5.4.0 по 5.7.1.
«[Используя эту уязвимость] можно сбросить пароль любого человека, если нам известен его username, а это позволяет сбросить пароль администратора сайта и войти в его учетную запись, — объясняют исследователи. — Уязвимость возникает в силу того, что функция сброса пароля не проверяет ключ сброса пароля, а вместо этого напрямую изменяет пароль для конкретного пользователя».
Последствия эксплуатации такой уязвимости могут быть значительными, начиная от несанкционированного доступа к частной информации, дефейса или удаления сайта, и заканчивая распространением вредоносных программ среди посетителей ресурса, что может иметь тяжелые последствия для владельцев сайта.
Как объясняется в отчете PatchStack, злоумышленнику необходимо установить случайное значение в POST page_id и widget_id, чтобы плагин не выдавал сообщение об ошибке, которое могло бы вызвать подозрения у администратора сайта. Также атакующий должен указать правильное значение nonce в параметре eael-resetpassword-nonce, чтобы подтвердить запрос на сброс пароля и установить новый пароль в параметрах eael-pass1 и eael-pass2.
«На данный момент главный вопрос заключается в том, как мы можем получить значение nonce для essential-addons-elementor, — пишут исследователи PatchStack. — Оказывается, значение nonce присутствует на главной странице интерфейса сайта WordPress, поскольку установлено в переменной $this->localize_objects функцией load_commnon_asset».
Таким образом, если в параметре rp_login задано действительное имя пользователя, можно изменить пароль целевого пользователя на новый, предоставленный злоумышленником, что, по сути, передаст хакеру контроль над учетной записью.
Исправление для уязвимости уже выпущено в составе Essential Addons for Elementor версии 5.7.2. Теперь всем пользователям плагина рекомендуется как можно скорее обновить его до новейшей версии.