Уязвимость в платформе для создания интернет-магазинов WooCommerce
В WooCommerce, плагине к системе управления контентом WordPress, позволяющем создавать площадки для продажи товаров, выявлена уязвимость, позволяющая выполнить код на сервере и получить полный контроль за сайтом. WooCommerce насчитывает более 4 млн установок и по статистике разработчиков используется для обеспечения работы около 30% всех интернет-магазинов в сети. Проблема устранена в выпуске WooCommerce 3.4.6.
Для эксплуатации уязвимости необходимо наличие прав менеджера торговой площадки. Отправив определенным образом оформленный запрос можно удалить произвольные файлы на сервере, насколько это позволяют полномочия, под которыми выполняется WordPress. Например, в ходе атаки можно удалить файл wp-config.php и инициировать процесс установки нового экземпляра WordPress. В ходе атаки злонамеренный сотрудник может завести новый аккаунт администратора WordPress, при помощи которого можно запустить произвольный PHP-код на сервере.
Для атаки также можно воспользоваться недоработкой в организации обработки привилегий в WordPress. На уровне плагина пользователи с правами менеджера торговой площадки имеют право только изменять учетные записи клиентов, но не имеют полномочий для изменения аккаунтов администратора. При этом роль менеджера торговой площадки с правом edit_users определяется на уровне платформы WordPress и в случае отключения плагина WooCommerce, так как ограничение доступа реализовано на его уровне, менеджеры торговой площадки получают возможность редактирования профилей всех пользователей WordPress. Воспользовавшись вышеописанной уязвимостью можно удалить файл woocommerce.php и отключить таким образом плагин WooCommerce, что позволит получить права администратора.