Критическая уязвимость в Ruby on Rails

В web-фреймворке Ruby on Rails выявлена уязвимость, позволяющая удалённому злоумышленнику организовать подстановку SQL-кода. Проблема вызвана отсутствием должной проверки вложенных параметров запроса в коде Active Record. В частности, конструкция "Post.where(:id => params[:id]).all" в коде Active Record напрямую передает внешние параметры в блок WHERE SQL-запроса, что позволяет атакующему передать запрос, в результате которого params[:id] вернёт специально изменённых хэш с содержимым дополнительных условий для блока WHERE. В результате, атакующий может получить доступ на чтение к содержимому таблиц в текущей БД, например, содержащих параметры аутентификации или конфиденциальные данные.

Уязвимость появляется только в Ruby on Rails 3.x, при использовании в приложениях Active Record для доступа к БД и вложенных параметров. Проблема устранена в корректирующих обновлениях Ruby on Rails 3.0.13, 3.1.5 и 3.2.5 (выпуск 3.2.4 отменён из-за регрессивных изменений). Похожая проблема зафиксирована в коде разбора параметров в Rack при использовании ActionPack, но она позволяет лишь вставить в SQL-запрос условие "IS NULL".

Источник:
http://www.opennet.ru/opennews/art.shtml?num=33992

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>