В WordPress-плагине WPForms, который используют более 6 млн сайтов, нашли уязвимость, позволяющую пользователям осуществлять произвольные возвраты средств через Stripe или отменять подписки.
WPForms — это конструктор форм для WordPress, который позволяет создавать формы для обратной связи, подписки и оплаты, а также поддерживает Stripe, PayPal, Square и другие платежные системы.
Проблема отслеживается под идентификатором CVE-2024-11205 и не считается критической, так как ее эксплуатация требует аутентификации. Однако, учитывая, что для атаки пользователю достаточно иметь права уровня subscriber, а системы регистрации доступны на большинстве уязвимых сайтов, проблема может представлять серьезную опасность.
Уязвимость была обнаружена независимым ИБ-исследователем vullu164, который получил 2376 долларов за ее обнаружение в рамках bug bouny программы Wordfence.
Ошибка связана с некорректным использованием функции wpforms_is_admin_ajax() для определения того, не исходит ли AJAX-запрос от администратора. Фактически баг позволяет любому аутентифицированному пользователю (даже уровня subscriber) работать с такими функциями как ajax_single_payment_refund(), которая выполняет возврат средств в Stripe, и ajax_single_payment_cancel(), которая отменяет подписку.
Уязвимость затрагивает WPForms версий от 1.8.4 до 1.9.2.1, и в прошлом месяце разработчики плагина из компании Awesome Motive выпустили патч для нее в составе версии 1.9.2.2.
Согласно статистике wordpress.org, примерно на половине всех сайтов, использующих WPForms, плагин не обновлен до безопасной версии (и даже до актуальной ветки 1.9.х), то есть количество уязвимых ресурсов составляет не менее 3 млн.
Специалисты Wordfence отмечают, что пока не обнаружили активной эксплуатации CVE-2024-11205, но они настоятельно рекомендуют администраторам как можно скорее обновить плагин до версии 1.9.2.2 или временно его отключить его.