Очередная уязвимость(CVE-2013-0333) в Rails позволяет злоумышленникам минуя аутентификацию запускать произвольный код.
Уязвимые версии: 2.3.x, 3.0.x
Безопасные: 3.1.x, 3.2.x или приложения использующие yajl-ruby
Пофикшено в версиях: 3.0.20, 2.3.16
Сейчас-то что случилось?
3.0 и 2.3 Rails поддерживают несколько бэкэндов для парсинга JSON. Один из бэкэндов включает в себя трансформирование JSON в YAML через YAML Parser. Злоумышленник может выполнить произвольный код, если передаст специальный запрос c закодированным YAML(вспомним CVE-2013-0156).
Костыли
Если нет возможности обновить версию Rails, можно использовать JSONGem как бэкэнд, поместив следующий код в config/initializers/json.rb:
ActiveSupport::JSON.backend = "JSONGem"
Если вы до сих пор используете Ruby 1.8, то не забудьте, что необходимо установить gem json или json_pure. В 1.9 этого уже не требуется.
P.S.
Правда, в комментариях к записи в блоге Rails уже сообщают о некоторых проблемах. Например, если у вас json с одинарными кавычками(что не позволено спецификацией JSON), то сейчас с этим будут проблемы.
ссылка на оригинал статьи http://habrahabr.ru/post/167491/
Добавить комментарий