Специалисты компании Sucuri обнаружили опасную уязвимость в популярном плагине Jetpack для WordPress. Используя её, злоумышленник может избежать санитизации вводимых данных и внедрить в страницу вредоносный код. Это, в свою очередь, позволит ему захватывать чужие учётные записи, в том числе администраторские.
Проблема усугубляется огромным числом пользователей Jetpack. Его разрабатывает компания Automattic — та же самая, что и сам WordPress. Jetpack занимает второе место в официальном рейтинге популярности плагинов для WordPress. Количество действующих инсталляций превышает миллион.
Одна из функций аддона — так называемые шорткоды. Они представляют собой своеобразные тэги, при помощи которых в посты и комментарии вставляют видео, документы или виджеты из Youtube, Facebook, Google Maps и других сервисов. В отличие от тэгов HTML, шорткоды заключены не в угловые, а в квадратные скобки, но всё остальное очень похоже. Вот, например, шорткод, который вставляет кадр из Instagram:
[instagram url=ссылка width=320]
Уязвимость, которую нашли специалисты Sucuri, коренится в реализации именно этой функции. Чтобы воспользоваться ей, злоумышленник должен оставить комментарий, в котором шорткод спрятан в атрибуте ссылки.
<a title='[vimeo 123]’>abc</a>
Обычно WordPress тщательно проверяет данные, которые поступают извне, и обезвреживает их, превращая понятные браузеру разметку и скрипты в безобидный текст. Но в данном случае что-то идёт не так, и обломки тэга, разорванного результатами обработки шорткода, ускользают от внимания санитизатора. В результате у злоумышленника появляется шанс встроить в комментарий вредоносный код,
Уязвимость можно использовать по-разному. Она позволяет размещать в комментариях оптимизаторский спам, вставлять редиректы, автоматически отправляющие посетителей на другой сайт, и даже дефейсить страницы. Кроме того, с её помощью можно захватить учётные записи других пользователей WordPress.
Уязвимость была найдена 12 мая. Для устранения ошибки разработчикам Jetpack понадобилось две недели. Обновлённую версию плагина можно скачать с WordPress.org.