Уязвимости в движке WordPress являются относительной редкостью. Большинство проблем, приводящих к нарушению работоспособности сайтов, использующих эту систему управления контентом, связаны с плагинами сторонних разработчиков.

На днях состоялся релиз версии WordPress 4.3.1, содержащей патчи для трех уязвимостей, две из которых были обнаружены исследователями из Check Point Software Technologies.

Наиболее опасная уязвимость связана с функцией WordPress, известной как шорткоды. Шорткоды были введены в версии 2.5 и представляют собой HTML-тэги, призванные облегчить процесс внедрения макросов в код, устраняя лишние хлопоты, связанные с необходимостью переписывать HTML-код. WordPress по умолчанию поддерживает внушительный набор шорткодов, к примеру позволяя автоматически и динамически внедрить Vimeo видеофайл на WP-сайт.

Глава отдела исследования уязвимостей из Check Point Шахар Тал (Shahar Tal) заявил, что компания передала отчет о трех обнаруженных ими уязвимостях еще пару месяцев назад. Разработка патчей заняла у специалистов WordPress существенное время, ведь им пришлось учитывать взаимную совместимость со сторонними плагинами, работоспособность которых могла быть нарушена обновлением.

Уязвимость, закрытая в новейшей версии, позволяла атакующему воспользоваться дефектами в механизме обработки шорткодов для внедрения произвольного JavaScript-кода, который был бы использован при генерации страницы. Подобные уязвимости межсайтового скриптинга не новы и зачастую становились первичным вектором атак, спонсированных криминальными группировками или правительствами некоторых стран.

«По сути это water-hole-атака, — заявил Тал. — Именно такими уязвимостями пользуются APT-группировки, да и спонсированные государствами группы тоже не прочь заполучить их в свой арсенал».

Помимо XSS-бага Тал и его коллега Нетанель Рубин (Netanel Rubin), потративший несколько месяцев на поиск уязвимостей в этой платформе, обнаружили еще одну уязвимость, позволяющую пользователям публиковать и прикреплять посты, не имея на это соответствующих разрешений. За несколько месяцев Рубин обнаружил несколько уязвимостей, которым были подвержены только пользователи-подписчики, а их эксплойт приводил к удаленному внедрению SQL-кода и позволял осуществлять XSS-атаки на бреши в движке ядра.

«Большинство плагинов и расширений пишутся буквально парой программистов или разработчиков. Они неспособны тестировать свой код на предмет уязвимостей на том же уровне, что и WordPress, — заявил Тал, объясняя таким образом, почему так трудно добиться исполнения кода в ядре платформы. — По мнению Нетанеля, код WordPress является одним из самых защищенных из тех, которые ему приходилось изучать, однако даже в нем ему удалось обнаружить пару изъянов. Мы надеемся, что разработчики смогут извлечь полезный урок из этой ситуации».

Check Point опубликовала отчет о своих находках, описав, как их исследователям удалось обойти защитные меры, блокирующие возможность использования неразрешенных тэгов и атрибутов.

«Мы смогли обойти защиту HTML-тэгов и внедрить код в атрибуты, используемые шорткодами, — заявил Тал. — Разработчики WordPress не учли всех факторов, когда добавляли подобный функционал, который весьма богат изъянами».

По словам Тала, специалисты WordPress провели анализ базы кода на предмет схожих уязвимостей.

Категории: Уязвимости