Критическая уязвимость в Rails. Опять

от автора


Очередная уязвимость(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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *