Один из инженеров компании Google смог выявить острую проблему в мобильном фреймворке jQuery. По последним данным, jQuery Mobile используют свыше 150 00 сайтов.
Как рассказывается в блоге разработчика (ссылка на источник ниже), если Ваш сайт использует jQuery Mobile и Open Redirect — то он является легкой мишенью для XSS-атаки. Заметим, что исправить данный баг очень сложно, посколько большинство сайтов ссылаются на локальную версию jQuery.
Из авторской статьи следует, что баг связан с location.hash. Во время обработки jQuery Mobile делает проверку, заполнен ли location.hash чем-то. Если последний содержит что-то похожее на URL, то скрипт будет пытаться включить в работу метод history.pushState а затем прибавит объект XMLHttpRequest. В ответ будет получен innerHTML. По своей сути, history.pushState должен способствовать предотвращение XSS-атаки, но если применяется Open Redirect, то они все равно возможны. Как пример, исследователь приводит следующее:
http://jquery-mobile-xss.appspot.com/#/redirect?url=http://sirdarckcat.github.io/xss/img-src.html
Если задуматься глобально, то такой уязвимости могут быть подвержены огромное количество веб-сайтов. Подобные алгоритмы можно встретить даже на гигантах Сети: Google, YouTube, Facebook. Что же касается исправления «дыры», то разработчики jQuery заявили, что в курсе уязвимости, но в ближайшее время сделать что-то эффективное вряд ли смогут.
Источник: SIRDARCKCAT