Плагин WordPress PayPal Donation для WordPress уязвим к хранимым межсайтовым сценариям через короткий код donate во всех версиях до 1.01 включительно. Это связано с недостаточной очисткой ввода и экранированием вывода в атрибутах короткого кода, предоставленных пользователем, таких как «сумма», «электронная почта», «заголовок», «return_url», «cancel_url», «ccode» и «изображение». Функция wordpress_paypal_donation_create() использует extract(shortcode_atts(...)) для обработки атрибутов короткого кода, а затем напрямую интерполирует эти значения в выходные данные HTML в значениях атрибутов в одинарных кавычках без какого-либо экранирования.
Это позволяет злоумышленникам, прошедшим проверку подлинности, с доступом на уровне участника и выше, внедрять произвольные веб-скрипты на страницы, которые будут выполняться всякий раз, когда пользователь обращается к внедренной странице.
Показать оригинальное описание (EN)
The WordPress PayPal Donation plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'donate' shortcode in all versions up to, and including, 1.01. This is due to insufficient input sanitization and output escaping on user-supplied shortcode attributes such as 'amount', 'email', 'title', 'return_url', 'cancel_url', 'ccode', and 'image'. The wordpress_paypal_donation_create() function uses extract(shortcode_atts(...)) to process shortcode attributes and then directly interpolates these values into HTML output within single-quoted attribute values without any escaping. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
Характеристики атаки
Последствия
Строка CVSS v3.1