Специалисты компании RIPS Technologies обнаружили проблему, связанную с работой WordPress и популярного e-commerce плагина WooCommerce, созданного фирмой Automattic. Согласно официальной статистике, это решение было загружено более четырех миллионов раз и насчитывает примерно столько же активных установок.
Исследователи объясняют, что проблем здесь сразу две. Первая проблема заключается в том, что когда для WordPress устанавливается плагин, в котором используются разные роли для пользователей, он не создает собственную систему аутентификации, но использует существующую систему привилегий CMS. Для этого плагин создает новую роль с новыми возможностями WordPress, а затем ограничивает ее взаимодействие с настройками CMS и другими пользователями посредством собственных функций.
Так, при установке WooCommerce создается новая роль Shop Manager («менеджер магазина»), которая имеет права edit_users. Это разрешение позволяет пользователю редактировать любые посты, а также профили любых других пользователей WordPress, включая администратора.
Казалось бы, разработчики WooCommerce предусмотрели функцию, запрещающую пользователям с данной ролью вмешиваться в профили администраторов. Но из-за недочета в работе системы управления привилегиями плагинов, при отключении WooCommerce ограничивающая «менеджеров магазина» функция перестает действовать, и пользователи с этой ролью могут свободно редактировать учетные записи других пользователей.
В итоге единственным надежным способом отключения плагина становится его отключение со стороны администратора, а лучше удаление всех его файлов. И здесь в дело вступает вторая проблема.
Дело в том, что аналитики RIPS Technologies обнаружили баг, связанный с удалением файлов WooCommerce версии 3.4.5 и ниже. Оказалось, что пользователи с правами Shop Manager могут удалить любой файл плагина, включая критически важные для его работы. После этого плагин предсказуемо перестанет работать, WordPress автоматически отключит его, и ситуация вернется к вышеописанному, когда пользователь с ролью Shop Manager имеет возможность редактировать профили любых пользователей.
Исследователи объясняют, что в такой ситуации для атакующего не составит труда захватить аккаунт администратора, а значит и контроль над всем сайтом. Видео ниже демонстрирует сочетание двух описанных проблем в деле.
Специалисты подчеркивают, что для успешной эксплуатации данной схемы, атакующему понадобится иметь доступ к аккаунту с ролью Shop manager. Однако это, по мнению исследователей, достижимо посредством XSS-уязвимостей или фишинговых атак.
Разработчики WooCommerce уже устранили проблему, выпустив новую версию плагина (3.4.6). Так как автоматическое обновление плагинов включено далеко не у всех, эксперты рекомендуют пользователям проверить обновления и убедиться, что они работают с новейшей версий WooCommerce.