The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

В Ruby on Rails обнаружена критическая уязвимость, позволяющая выполнить код на сервере

09.01.2013 18:27

Спустя всего неделю после выявления во фреймворке Ruby on Rails возможности подстановки SQL-кода, разработчиками проекта представлена очередная порция обновлений Ruby on Rails 3.2.11, 3.1.10, 3.0.19 и 2.3.15 с устранением нескольких новых уязвимостей. Одна из проблем помечена как экстремально опасная, так как позволяет злоумышленнику выполнить свой код на сервере. Всем пользователям Ruby on Rails рекомендуется как можно скорее обновить свои системы и проанализировать по логам возможные факты эксплуатации уязвимостей.

  • CVE-2013-0156 - серия уязвимостей, которая позволяет атакующему выполнить свой код на сервере, обойти средства аутентификации, осуществить подстановку SQL кода. Уязвимости вызваны рядом ошибок в коде разбора XML параметров в Action Pack. Код разбора параметров в Ruby on Rails позволяет приложениям автоматически приводить значения различных переменных из строкового типа в представление других типов данных. Некоторые из используемых при таких операциях преобразований неприменимы при попытке создания Symbols или при парсинге YAML, и могут быть использованы атакующим для компрометации Rails-приложений (по сути можно организовать выполнение Ruby-кода, заданного в XML блоках с параметром type="yaml"). Для атаки злоумышленнику достаточно отправить специальный POST-запрос к приложению, использующему Rails. Прототип эксплоита для проверки своих систем на уязвимость можно найти здесь, здесь или здесь.

    В качестве обходного пути защиты рекомендует запретить разбор XML-параметров через установку опции "ActionDispatch::ParamsParser::DEFAULT_PARSERS.delete(Mime::XML)" для Rails 3.2, 3.1 и 3.0 или опции "ActionController::Base.param_parsers.delete(Mime::XML)" для Rails 2.3. Кроме того, можно отключить разбор поддержки YAML и Symbol в парсере XML;

  • CVE-2013-0155 - позволяет изменить содержимое некоторых SQL-запросов (можно изменить запрос для применения условия "IS NULL" или для игнорирования блока WHERE) при использовании в приложении парсинга параметров JSON средствами Active Record. Проблема проявляется только в Rails 3.x.

Дополнение: опубликована серия рабочих прототипов эксплоитов (PoC) и детальный обзор техники эксплуатации. Кроме того, уже начали поступать сообщения о выявлении массовых атак на сайты, использующие Ruby on Rails.

  1. Главная ссылка к новости (http://weblog.rubyonrails.org/...)
  2. OpenNews: В Ruby on Rails устранена уязвимость, позволяющая осуществить подстановку SQL-кода
  3. OpenNews: В Ruby on Rails повторно устранена возможность подстановки SQL-кода
  4. OpenNews: Критическая уязвимость в Ruby on Rails
  5. OpenNews: Релиз web-фреймворка Ruby on Rails 3.2
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/35792-raild
Ключевые слова: raild, ruby
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (42) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (-), 19:12, 09/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уау !!! Эксплоит необычайно красив. Достаточно POST-ом отправить:

    <?xml version="1.0" encoding="UTF-8"?>
    <bang type="yaml">--- !ruby/object:Time {}
    </bang>

    и будет выполнен код object:Time

     
     
  • 2.4, homakov (?), 19:23, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    в паблике PoC еще не было, он очень интересный я думаю.
     

  • 1.6, Аноним (-), 20:00, 09/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Красота какая. Python, теперь Ruby.
     
     
  • 2.7, Anonymous000 (?), 20:31, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +8 +/
    не руби, а рельсы
     
     
  • 3.9, Michael Shigorin (ok), 20:40, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +10 +/
    > не руби, а рельсы

    Да и не питон, а MoinMoin.

     
     
  • 4.11, зачем имя анониму (?), 21:25, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Хм, когда находят уязвимости в PHP-приложениях, все почему-то поливают помоями в первую очередь платформу, а не сами приложения.
     
     
  • 5.13, filosofem (ok), 21:31, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Хм, когда находят уязвимости в PHP-приложениях, все почему-то поливают помоями в первую
    > очередь платформу, а не сами приложения.

    Не все, а сугубо некоторые. Но от этих некоторых так воняет, что нормальные люди с адекватным мнением часто предпочитают не отмечаться здесь в темах относительно PHP, Wayland и Ubuntu, чтобы не забрызгало. И я их понимаю.

     
  • 5.16, Аноним (-), 21:43, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Хм, когда находят уязвимости в PHP-приложениях, все почему-то поливают помоями в первую
    > очередь платформу, а не сами приложения.

    Потому что эти уязвимости связаны с проблемами самой платформы PHP.

     
     
  • 6.17, Michael Shigorin (ok), 22:06, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> Хм, когда находят уязвимости в PHP-приложениях, все почему-то поливают помоями в первую
    >> очередь платформу, а не сами приложения.
    > Потому что эти уязвимости связаны с проблемами самой платформы PHP.

    Давайте всё-таки различать уязвимости приложений, фреймворков, платформы; как и их причины -- ошибки дизайна, промахи реализации, низкий общий культурный уровень.

     
     
  • 7.29, бедный буратино (ok), 03:01, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Давайте всё-таки различать уязвимости приложений, фреймворков, платформы; как и их причины -- ошибки дизайна, промахи реализации, низкий общий культурный уровень.

    До недавних пор, пока все пальцами тыкать не начали, в php вообще не знали, что такое фреймворк.

    И такие фичи, как "инклюд со всеми паролями, который можно найти с помощью спайдера, потому что лежит где-то рядом" или "внезапно (например, при переносе) не запустилось php, и в результате веб-сервер отдаёт полные исходники".

    Кроме того, некоторые вещи, которые в развитых средствах делаются легко и приятно, в php приходится костылить и набалдашивать, поэтому и велика вероятность ошибок.

    Ещё php не неглядный для веба. Конечно, некоторые фреймворки пытаются скрыть этот факт, но среднего php-шника на фреймворки не загонишь, потому что это чуждая культура - фича php это написать <? tralala; ?> здесь и сейчас, а не сначала делать схему, проектирование и уже по ней реализовывать. PHP-шник, который захочет делать всё по уму, быстро придёт к выводу, что по уму намного удобнее делать на том же python :) Это писать "где придётся, как придётся" удобнее на php. :)

     
     
  • 8.32, Anonymous000 (?), 04:52, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Архитектура приложения на порядок более важна, чем язык Грамотно спроектированн... текст свёрнут, показать
     
     
  • 9.36, бедный буратино (ok), 05:43, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    То, что php-шники считают, что их язык самый простой в освоении и самый лучший д... текст свёрнут, показать
     
     
  • 10.37, Еще анонимус (?), 08:09, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Всегда приятно и смешно читать мнение упоротых в любой области, не только касат... текст свёрнут, показать
     
  • 10.52, гпм (?), 14:37, 11/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А то Си такую привычку не вызывает ... текст свёрнут, показать
     
  • 10.56, Аноним (-), 11:38, 14/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Да, толпы питонистов и рубистов с батхертом пытаются оспорить этот титул ... текст свёрнут, показать
     
  • 6.19, Аноним (-), 22:47, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Потому что эти уязвимости связаны с проблемами самой платформы PHP.

    Ну тогда будет честно если дырка в moinmoin будет распостранена на весь питон, да? :)

     
  • 6.21, Anonymous000 (?), 22:58, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Нет. Они связаны с 95% программистов на php. А так - вполне нормальный инструмент, если закрыть глаза на кривости стандартной библиотеки - детские болезни типа register_globals и magic_quotes давно исправлены. "Программисты на рельсах", сам ruby не знающие, и чуть чего, бегущие на форумы с вопросом "где взять gem для foo", ничем не лучше. В ровных руках и руби, и php, и питон хороши и пригодны.
     
     
  • 7.23, Crazy Alex (ok), 23:21, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Стоит всё же добавить, что PHP не блещет внутренней логикой. Чего стоит только то, как прикручивали по отдельности возможность индексации то к непосредственному результату выполнения функции, то ещё к чему-то... Или можно вспомнить, что функции там регистронезависимы - а переменные регистрозависимы... В общем, там старых скелетов всё же многовато.
     
     
  • 8.26, Anonymous000 (?), 00:26, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В с скелетов не меньше, если задуматься Что не мешает на нем писать ... текст свёрнут, показать
     
     
  • 9.27, Например (?), 02:14, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    те кто пишут на c имеют, все-таки, имеют более высоку квалификацию иначе прос... текст свёрнут, показать
     
     
  • 10.33, Anonymous000 (?), 04:57, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ох Моя первая работа в 18 лет заключалась как раз в программировании на С ... текст свёрнут, показать
     
  • 9.31, бедный буратино (ok), 03:06, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если взломать приложение на c , самое большее, что можно получить - это бесконе... текст свёрнут, показать
     
     
  • 10.34, Anonymous000 (?), 04:59, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Или выполнение произвольного кода Но бесконечные жизни забавнее, не спорю - ... текст свёрнут, показать
     

  • 1.8, Michael Shigorin (ok), 20:40, 09/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Соответственно из дистрибутива или gem install rails -v=2.3.15

    PS: интересно, кому вообще такая "гениальная идея" пришла в голову при существовавшем на то время register_globals в PHP и широкой известности самых разнообразных проблем с ним... опять небось виндузятники с макинтоидами, не читавшие даже study in scarlet :-/

     
     
  • 2.12, deadless (ok), 21:28, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Микаэль, у тебя параноя :) кругом враги мерещаццо, в следующий раз чашку кофе прольешь, кляни на чем свет стоит тех виндузятнегов что кофе изобрели!
     
     
  • 3.14, filosofem (ok), 21:34, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > виндузятнегов что кофе
    > изобрели!

    Вообще-то сановцы.

     
  • 3.15, Michael Shigorin (ok), 21:38, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Микаэль, у тебя параноя :)

    Всего лишь читаю или поглядываю в ruby-talk@ без малого десять лет.

     
     
  • 4.22, тигар (ok), 23:08, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >> Микаэль, у тебя параноя :)
    > Всего лишь читаю или поглядываю в ruby-talk@ без малого десять лет.

    правильно. не показывай мАлому это!:-)

     

  • 1.10, Аноним (-), 20:45, 09/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > unfortunately, the patches cause a serious regression, because every JSON incomming request containing nil values are now stripped.
    > https://github.com/rails/rails/issues/8831

    Вот такое вот обновление...

     
  • 1.18, pavlinux (ok), 22:26, 09/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ха, пля, я для редмана эксплойт намутил. Вешайтесь духи!!! :)
     
     
  • 2.20, Аноним (-), 22:50, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Ха, пля, я для редмана эксплойт намутил. Вешайтесь духи!!! :)

    Думаешь, за остальными заржаевеет? Хотя вот честно, обладателей редмайнов и мойнмойнов не жалко. Совсем. Они вывешивают окружающим такие кактусы. Пусть теперь сами выкусят.

     
     
  • 3.24, pavlinux (ok), 23:42, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Да ладно, нормальная СРМка, для малого офиса. Тока ухаживать за ним надо.
    Самая ж..па была той весной, когда  дистрибутивы массово на руби 2.0+ перешли,
    а редмайновцы и плугино-писатели особо не торопились.
    Было два выхода - ставить руби 1.8 или переделывать/доделывать редмайн с плугинами,
    сейчас вроде всё устаканилось.      
     
     
  • 4.28, Led (ok), 02:52, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Самая ж..па была той весной, когда  дистрибутивы массово на руби 2.0+ перешли

    Верни машину времени на место. Или бросай бухать.

     
  • 4.35, бедный буратино (ok), 05:35, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > когда  дистрибутивы массово на руби 2.0+ перешли

    назовите хотя бы два таких дистрибутива

    arch: ruby 1.9.3
    sid: 1.8.7 и 1.9.3
    alt sisyphus: 1.9.3
    mageia3: 1.9.3
    frugalware-current: 1.9.2
    slackware-current: 1.9.3

     
     
  • 5.53, pavlinux (ok), 03:24, 14/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> когда  дистрибутивы массово на руби 2.0+ перешли
    > назовите хотя бы два таких дистрибутива
    > arch: ruby 1.9.3
    > sid: 1.8.7 и 1.9.3
    > alt sisyphus: 1.9.3
    > mageia3: 1.9.3
    > frugalware-current: 1.9.2
    > slackware-current: 1.9.3

    Ну или 1.9, путаю я их :)

     
  • 2.25, GentooBoy (ok), 00:13, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Как раз новый honeypot опробуем.
     
  • 2.30, бедный буратино (ok), 03:05, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Редмайн обычно старается все косяки rails исправлять, обычно их такие уязвимости не касались. Но я всё равно держу его в чруте, и регулярно обновляю из hg.

    А ломание обычно начинают с github. Если github стоит, значит всё нормально. :)

     
  • 2.44, Andrew Kolchoogin (?), 12:04, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Павлин, а разве последний RedMine уже не требует жёстко 3.0.19?
     
     
  • 3.46, бедный буратино (ok), 12:25, 10/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Павлин, а разве последний RedMine уже не требует жёстко 3.0.19?

    у меня в gemfile написано 3.2.11

     
  • 3.54, pavlinux (ok), 03:35, 14/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >... требует жёстко 3.0.19?

    Да говорю, там зоопарк

    Стабильными считаются редмайны - 2.2.1, 2.1.6, 1.4.6
    Все 2-ки работают на руби 1.8.4 и 1.9,
    1.4.6 - только на 1.8

    Мне, пля, повезло, я попал на версию редмайна 2.0, которая супер-пупер мутантская,
    сначала работала на 1.8, но все апдейты к ниму тестят на 2.1, и плугины тоже.
    .... ,бла-бла-бла....

    В общем потихоньку переползаю на 2.1

    И ваще, установку редмайна надо начинать с изучения работоспособности всех плугинов!!!
    А то, я к примеру, из-за этих плугинописателей, весь ActionMailer перехерачил, теперь
    сам боюсь трогать. :)


     
     
  • 4.55, Andrey Mitrofanov (?), 10:50, 14/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >>... требует жёстко 3.0.19?
    > Да говорю, там зоопарк
    > Стабильными считаются

    Есть такое впечатление, что ребята с рельсами _уверены, что и руби, и рельсы просто _необходимо ставить в домашнюю директорию, при каждом логине на машину обновлять с интернетов все gem-ы (у которых тоже принципиально не бывает стабильных версий/релизов). Это Путь К Успеху. Проверено гламурными ребятами с макбуками.

    Это у тебя зоопарк: ты хочешь от них чего-то странного -- "стабильный", "продакшен", "сесьюрити-саппорт".

    Одумайся!+:/

    > сам боюсь трогать. :)

     
     
  • 5.57, pavlinux (ok), 01:44, 15/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Одумайся!+:/

    Я что ль придумал его впиндюрить?! Партия сказала - надо, комсомол ответил - есть!

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру