Критична вразливість в 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 цього вже не потрібно.

PS


Правда, в коментарях до запису в блозі Rails вже повідомляють про деякі проблеми. Наприклад, якщо у вас json з одинарними лапками (що не дозволено специфікацією JSON), то зараз з цим будуть проблеми.

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.