В jQuery исправлена уязвимость prototype pollution

19

В jQuery исправлена уязвимость prototype pollution

Исследователи безопасности только недавно начали понимать суть уязвимостей класса prototype pollution.


В популярной 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 очень сложно проэксплуатировать, поскольку атакующий должен произвести с каждым отдельным кодом весьма тонкие манипуляции.