Обновление Ruby on Rails 3.0.20 и 2.3.16 с устранением критической уязвимости

29 января 2013 года

Спустя всего две недели с момента прошлой опасной уязвимости представлено корректирующее обновление Ruby on Rails 3.0.20 и 2.3.16 с устранением очередной критической уязвимости (CVE-2013-0333), которая может привести к выполнению кода на сервере, обходу системы аутентификации и выполнению SQL-запроса. Проблема найдена в коде парсера JSON и может быть эксплуатирована при обработке специально сформированного JSON-блока c YAML-вставками. Для эксплуатации достаточно отправить любому приложению специальный HTTP POST-запрос с типом "text/json".

Интересно, что уязвимость имеет единые корни с прошлой критической проблемой, для которой был устранён лишь частный случай проявления уязвимости. Оказалось, что кроме XML блоков YAML-вставки аналогичным образом могут быть обработаны и в JSON-контенте. ActiveSupport::JSON по умолчанию используется бэкенд Yaml, который выполняет разбор через трансляцию JSON в YAML и выполнение YAML.load. При разборе строк используется метод StringScanner, заменяющий элементы JSON на эквивалентные блоки YAML, но не выполняющий полный парсинг и проверку конструкций JSON, что позволяет сформировать произвольные блоки YAML, в том числе передать и выполнить объекты с Ruby-кодом.

Всем пользователям Ruby on Rails рекомендуется незамедлительно установить обновление, так как в сети уже опубликован рабочий прототип эксплоита. Проблема проявляется в ветках 2.3.x и 3.0.x. В качестве обходного пути защиты можно переключиться на бэкенд JSONGem, указав настройках инициализации приложения ActiveSupport::JSON.backend = "JSONGem".

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Обновление Ruby on Rails 3.0.20 и 2.3.16 с устранением критической уязвимости», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.