Плагин SiteOrigin Widgets Bundle для WordPress, имеющий более 600 000 установок, исправил уязвимость хранимого межсайтового скриптинга (XSS) с проверкой подлинности, которая могла позволить злоумышленникам загружать произвольные файлы и подвергать посетителей сайта воздействию вредоносных скриптов.
Плагин SiteOrigin Widgets Bundle
Плагин SiteOrigins Widgets, имеющий более 600 000 активных установок, позволяет легко добавлять множество функций виджетов, таких как слайдеры, карусели, карты, изменять способ отображения сообщений в блоге и другие полезные элементы веб-страницы.
Уязвимость хранимого межсайтового скриптинга
Уязвимость межсайтового скриптинга (XSS) — это уязвимость, позволяющая хакеру внедрять (загружать) вредоносные скрипты. В плагинах WordPress такого рода уязвимости возникают из-за ошибок в том, как входящие данные не очищаются должным образом (фильтруются для ненадежных данных), а также из-за неправильной защиты выходных данных (так называемое экранирование данных).
Эта конкретная XSS-уязвимость называется Stored XSS, поскольку злоумышленник может внедрить вредоносный код на сервер. По данным некоммерческого проекта Open Worldwide Application Security Project (OWASP), возможность запуска атаки непосредственно с веб-сайта вызывает особую тревогу.
OWASP описывает сохраненный XSS угроза:
«Этот тип эксплойта, известный как Stored XSS, особенно коварен, поскольку косвенность, вызванная хранилищем данных, затрудняет выявление угрозы и увеличивает вероятность того, что атака затронет нескольких пользователей. «
При XSS-атаке, когда сценарий был успешно внедрен, злоумышленник отправляет вредоносный сценарий ничего не подозревающему посетителю сайта. Браузер пользователя, поскольку он доверяет веб-сайту, выполняет файл. Это может позволить злоумышленнику получить доступ к файлам cookie, токенам сеанса и другим конфиденциальным данным веб-сайта.
Описание уязвимости
Уязвимость возникла из-за ошибок в очистке входных данных и экранировании данных.
Страница разработчика WordPress, посвященная безопасности объясняет санитарную обработку:
«Обеззараживание входных данных — это процесс защиты/очистки/фильтрации входных данных. Валидация предпочтительнее санитарной обработки, поскольку валидация более специфична. Но когда «более конкретное» невозможно, лучшим решением будет санитарная обработка».
Экранирование данных в плагине WordPress — это функция безопасности, которая отфильтровывает нежелательный вывод.
Обе эти функции нуждались в улучшении в плагине SiteOrigins Widgets Bundle.
Wordfence описал уязвимость:
«Плагин SiteOrigin Widgets Bundle для WordPress уязвим к хранимым межсайтовым сценариям через параметр onclick во всех версиях до 1.58.3 включительно из-за недостаточной очистки ввода и экранирования вывода».
Эта уязвимость требует аутентификации перед ее выполнением, а это означает, что злоумышленнику необходим как минимум доступ на уровне участника, чтобы иметь возможность начать атаку.
Рекомендованное действие:
Уязвимости присвоен средний уровень серьезности CVSS — 6,4 из 10. Пользователям плагина следует рассмотреть возможность обновления до последней версии, то есть версии 1.58.5, хотя уязвимость была исправлена в версии 1.58.4.
Прочтите рекомендации по уязвимостям Wordfence: