Пожалуйста, обратите внимание, что пользователь заблокирован
В популярной JavaScript-библиотеке jQuery, использующейся на 74% сайтов, исправлена опасная уязвимость. Web-разработчикам рекомендуется обновить jQuery в своих проектах до версии 3.4.0.
Речь идет о редко встречающейся уязвимости prototype pollution, суть которой исследователи безопасности стали понимать только сейчас (впервые уязвимость prototype pollution была задокументирована в прошлом году). Название проблемы говорит само за себя – с ее помощью злоумышленник может модифицировать прототип объекта JavaScript.
Прототипы объектов JavaScript подобны переменным, только вместо одного значения (var car = "Fiat") они могут содержать несколько значений, основывающихся на заранее определенной структуре (var car ={type:"Fiat", model:"500", color:"white"}). Прототипы устанавливают для объектов структуру и значения по умолчанию, благодаря чему приложение не завершает работу, если значения не были установлены. Внесение изменений в прототип объекта может серьезным образом сказаться на обработке данных приложением и проложить путь другим, еще более опасным атакам.
Уязвимость prototype pollution в jQuery (CVE-2019-11358) была обнаружена исследователями компании Snyk. На прошлой неделе они опубликовали PoC-эксплоит и продемонстрировали, как с ее помощью злоумышленник может получить права администратора в web-приложении, использующем jQuery.
Как бы то ни было, уязвимости prototype pollution очень сложно проэксплуатировать, поскольку атакующий должен произвести с каждым отдельным кодом весьма тонкие манипуляции.
PoC
https://snyk.io/blog/after-three-ye...e-pollution-vulnerability-emerges-once-again/
https://github.com/jquery/jquery/pull/4333
https://snyk.io/vuln/SNYK-JS-JQUERY-174006
Дополнительная информация
github.com
Речь идет о редко встречающейся уязвимости prototype pollution, суть которой исследователи безопасности стали понимать только сейчас (впервые уязвимость prototype pollution была задокументирована в прошлом году). Название проблемы говорит само за себя – с ее помощью злоумышленник может модифицировать прототип объекта JavaScript.
Прототипы объектов JavaScript подобны переменным, только вместо одного значения (var car = "Fiat") они могут содержать несколько значений, основывающихся на заранее определенной структуре (var car ={type:"Fiat", model:"500", color:"white"}). Прототипы устанавливают для объектов структуру и значения по умолчанию, благодаря чему приложение не завершает работу, если значения не были установлены. Внесение изменений в прототип объекта может серьезным образом сказаться на обработке данных приложением и проложить путь другим, еще более опасным атакам.
Уязвимость prototype pollution в jQuery (CVE-2019-11358) была обнаружена исследователями компании Snyk. На прошлой неделе они опубликовали PoC-эксплоит и продемонстрировали, как с ее помощью злоумышленник может получить права администратора в web-приложении, использующем jQuery.
Как бы то ни было, уязвимости prototype pollution очень сложно проэксплуатировать, поскольку атакующий должен произвести с каждым отдельным кодом весьма тонкие манипуляции.
PoC
$.extend( true, ... )https://snyk.io/blog/after-three-ye...e-pollution-vulnerability-emerges-once-again/
https://github.com/jquery/jquery/pull/4333
https://snyk.io/vuln/SNYK-JS-JQUERY-174006
Дополнительная информация
prototype-pollution-nsec18/paper/JavaScript_prototype_pollution_attack_in_NodeJS.pdf at master · HoLyVieR/prototype-pollution-nsec18
Content released at NorthSec 2018 for my talk on prototype pollution - HoLyVieR/prototype-pollution-nsec18