
PoC of CVE-2025-31864
Плагин WordPress
Имя компонента Beam me up Scotty – Back to Top Button
Уязвимая версия <= 1.0.23
Слаг компонента beam-me-up-scotty
Ссылка на компонент https://wordpress.org/plugins/beam-me-up-scotty/
Класс уязвимости A3: Injection
Тип уязвимости Cross Site Scripting (XSS)
Администратор
В версиях 1.0.23 и ниже плагина Beam me up Scotty существует сохраненная уязвимость межсайтового скриптинга из-за недостаточной проверки типа данных и обработки экранирования для настроек кастомизации 'back to top button'.
Эти настройки кастомизации доступны только пользователям с правами администратора, и если злоумышленник с правами администратора воспользуется этой уязвимостью, посетители всех страниц, где отображается 'back to top button', будут подвержены атакам межсайтового скриптинга.
Подготовьте WordPress-сайт с установленным и активированным плагином Beam me up Scotty версии 1.0.23 или ниже.
Перейдите в меню настройки 'back to top button' (/wp-admin/themes.php?page=beam-me-up-scotty_settings).

Включив перехват в прокси-инструменте (например, BurpSuite), нажмите кнопку 'Save' внизу меню настроек 'back to top button', чтобы перехватить пакет запроса, который сохраняет настройки кастомизации 'back to top button'.

Измените значение полезной нагрузки beam_me_up_scotty_bottom_indentation в теле запроса на следующее, затем выполните Forward.
20px;}</style><script>alert("XSS")</script><style>foo{bottom:0

После доступа к WordPress-сайту вы можете подтвердить, что уязвимость XSS проявляется.


Плагин Beam me up Scotty выполняет файл /wp-content/plugins/beam-me-up-scotty/library/includes/dynamic-css.php для применения настроек кастомизации 'back to top button'.
Этот файл устанавливает настройки кастомизации как значения атрибутов стиля для 'back to top button' внутри тега style. На этом этапе вы можете убедиться, что настройки кастомизации 'back to top button' используются в теге style без какой-либо обработки экранирования.

Следовательно, как показано в PoC, можно подтвердить, что при вводе полезной нагрузки beam_me_up_scotty_bottom_indentation, содержащей скрипт XSS-атаки, скрипт выполняется, поскольку его значение используется как значение атрибута стиля 'back to top button' без обработки экранирования.

В результате при доступе к WordPress-сайту можно увидеть следующий HTML-код.
