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



Уязвимость безопасности находится в шорткоде встроенного Jetpack модуля, поэтому, если Вы не активировали его на сайте, Вас не затронет эта проблема. Атакующий может использовать данную уязвимость, оставив комментарий, подготовленный шорткод, чтобы выполнить вредоносный код Javascript на уязвимом сайте. Поскольку это Cross-Site Scripting (XSS) уязвимость, она может позволить злоумышленнику похитить учетные данные администраторов, вставить SEO спам на пораженную страницу и перенаправлять посетителей на вредоносные веб-сайты.

Подробнее


Эта уязвимость очень похожа на bbPress уязвимость, которая была описана на прошлой неделе, на сайте первоисточника другой экземпляр текста, небрежно заменяемого некоторыми HTML-тэгами.



В данном случае расследование уязвимости начинается с comment_text, использующейся при выводе содержимого комментариев. Vimeo_link используется таким образом, что он может динамически изменять вывод комментариев.



Как Вы можете видеть из приведенных выше регулярных выражений, осуществляется поиск vimeo шорткода внутри комментариев. В случае обнаружения совпадений они будут переданы функции vimeo_link_callback



В результате, возвращается HTML — тег, содержащий встроенное видео Vimeo. Давайте посмотрим на что похож полученный результат, отправив комментарий содержащий <a title='[vimeo 123]’>abc:



Ого, что же там произошло? Похоже, атрибуты заголовка, окончание и одинарные кавычки исчезли. Все, что нужно было сделать — работающий пример, который должен был показать, что мы можем соответствующим образом закрыть наши атрибуты заголовка и вставить новые обработчики произвольного события для доказательства нашей концепции. Как мы уже говорили — это очень легко эксплуатируется.

Авторы исследования работали с командой Jetpack и они сразу же откликнулись, держали нас в курсе обновлений все это время.

Если Вы используете уязвимую версию этого плагина, обновитесь как можно скорее! Если по определенным сделать это невозможно, Вы можете использовать Sucuri Firewall или эквивалентную технологию для решения проблемы.
Поделиться с друзьями
-->

Комментарии (9)


  1. web2033
    01.06.2016 08:21
    +3

    Можно было указать, что речь о конкретном плагине WP. А то из заголовка можно подумать что в ядре проблемы остались. Исправленные версии на jetpack.com


    1. strlock
      03.06.2016 23:08

      И в чём, собственно, новость? В плагинах бывают уязвимости? Или, о боже, как всегда, не все обновляют софт?)


  1. OstaninKI
    01.06.2016 08:22
    +4

    Только одно не указано в статье — версия уязвимого плагина…
    Укажите, пожалуйста, дабы не мучать общественность хабра


  1. nikitasius
    01.06.2016 09:12
    +1

    Или просто отключить комментарии в блоге. У меня, к примеру, они изначально выключены.


    1. TimsTims
      01.06.2016 09:45
      +3

      Или можно отключить веб-сервер. У некоторых именно так и сделано. Однако это не решает проблемы, когда сайтам очень важно принимать комментарии пользователей.


  1. dmitry_ch
    01.06.2016 09:15
    +2

    Подано так, будто WP всегда был безгрешным, а тут — раз! — нашлась дыра, и ее еще не залатали.

    В жизни ситуация обычно другая. Ядро более-менее латают, по мере сил, но сторонние плагины — это сторонние плагины (даже если говорим про функционал плагинов, идущих из коробки). Авторам недосуг (или не по зубам) заткнуть дыры, владельцы/создатели сайто ставят то, что им кажется подходящим по функционалу (из описания), а не только то, что по результатам code review признают безопасным.

    Так что вы уж переименуйте пост из «XSS уязвимость по-прежнему сохранятся для WordPress» в «Еще одна XSS нашлась в еще одном плагине для WP». Да и то — вы написали об одном плагине, а ведь сотни их, и вопрос с безопасностью и качеством кода каждого из них — очень неопределенный. Сегодня дырок нет, а в завтрашней версии — уже есть, тут статьями про одну уязвимость в одной версии одного плагина не отделаться.


  1. PapaBubaDiop
    01.06.2016 09:54

    XSS уязвимость сохранятся

    Русский языка вешатся.


  1. Amareis
    01.06.2016 12:10
    +1

    Кстати, у меня уже давненько выросло некое неприятие всех этих кастомных комментов. Есть же disquss, что ещё нужно?


  1. ambientos
    01.06.2016 14:20

    Насколько мне известно, если включено автоматическое обновление данного плагина, то он автоматически обновляется.