Разработчики Ruby on Rails объявили о выпуске критических обновлений фреймворка до версий 3.2.12, 3.1.11 и 2.3.17 после выявления опасных уязвимостей, которые были закрыты в оперативном порядке. В версиях 3.2.12 и 3.1.11 закрыта одна уязвимость, а в версии 2.3.17 — две. Всем пользователям рекомендуется установить апдейты как можно быстрее.
Подробнее об уязвимостях можно прочитать здесь:
CVE-2013-0276 (3.2.12, 3.1.11, 2.3.17)
CVE-2013-0277 (2.3.17)
В случае с CVE-2013-0276 речь идёт об уязвимости в методе attr_protected
в библиотеке ActiveRecord. Данный метод предназначен для записи списка атрибутов, которые нельзя присваивать конкретной модели. Используя специальным образом составленный запрос, злоумышленник может обойти это ограничение и изменить значения, которые предполагалось защитить. Единственной «защитой» для уязвимых версий является отказ от метода attr_protected
в пользу метода attr_accessible
.
Одновременно с патчами для Rails выпущена новая версия гема JSON, где закрыта другая уязвимость CVE-2013-0269, которую можно использовать для DoS-атаки на фреймворк Ruby. Конкретно, дефолтный парсер JSON уличили в том, что он берёт из const_get(user_input)
и генерирует символы Ruby, которые не убираются сборщиком мусора. Специфическое поведение парсера можно использовать для внедрения символов в любой класс Rails, что открывает возможности для массовых SQL-инъекций.
Нужно добавить, что за последние недели в Ruby обнаружено несколько опаснейших уязвимостей. По мнению некоторых пользователей Ruby, данный факт говорит о «взрослении фреймворка».