Уязвимость wordpress

Wordpress опубликовал обновление WordPress 4.2.1.
Это критически важное обновление и всем пользователям популярной CMS Worpress рекомендуется обновиться.
Несколько часов назад команда получила информацию о XSS уязвимости, которая может быть использована злоумышленником, если на сайте включена возможность комментирования записей блога.
Уязвимость была обнаружена Jouko Pynnönen.

Уязвимость связана с тем, что если комментарий превысит стандартные для MySQL TEXT 64КБ, то будет будет усечен при внесении в базу данных.
Атакующий может оставить комментарий размером в 64KB, который попадает базу данных без проверок и может быть доступен читателям блога. Таким образом, если атакующий внедрит в такой комментарий JavaScript код, то он будет исполнен в браузере пользователя. В частности, если комментарий будет просмотрен администратором сайта, то злоумышленник может сменить пароль, создать новый аккаунт, загрузить файлы от имени администратора.

Видео-демонстрация уязвимости:


Рекомендуем всем обновиться.
Поделиться публикацией
Похожие публикации
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама
Комментарии 10
  • 0
    Рекомендую еще немного сократить статью, и лучше запостить сюда: twitter.com
  • 0
    Сообщество не любит wordpress :)
  • +1
    Посмотрел diff но так и не понял суть бага, точнее как оно может быть связано с длиной коммента?
    Если пользователь постит коммент, то его обработку (экранирование спец-символов) можно сделать до помещения в БД или после (при выводе).
    Предположим коммент обрабатывается до помещения в БД функцией типа htmlentities() (замена < и > на &lt; &gt;) и коммент не влазит в 64кб при записи в базу.
    Значит туда будет записан кусок текста, но текст должен быть обработан и отфильтрован ещё перед записью в БД и никаких «тегов» там остаться не должно.

    Фикс судя по DIFFу заключается в том что они проверяют длину данных в соответствие с типами полей в БД и если у вас коммент длинее 64Кб а поле MySQL TEXT то он не пройдёт.
    • 0
      Костыли на костылях костылями поганяют.
      • 0
        Разобрался. Дело в списке «разрешённых тегов» типа <a> и доп. атрибутах внутри тега. И фильтрация атрибутов у них не срабатывает корректно из-за «обрезания» данных.
        • +1
          Там вообще нет обрезки тегов. Все аргументы ескейптся с помощью мускульной функции. В базу попадает уже отъескепленный текст любого размера. И уже база делает отлуп превышения размерности.
          Коммит — очередной костыль, к XSS не имеющий никакого отношения.
          А это вообще шедевр
          public function escape_by_ref( &$string ) { 
              if ( ! is_float( $string ) ) 
                  $string = $this->_real_escape( $string ); 
          }
          

          Как, собственно, и весь ВП :)
      • 0
        Другое дело, что комменты часто отключены…

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.