Выполнение произвольного кода в Rails

    Вкратце: Rails 2,3 и 4 приложения подвержены выполнению произвольного кода(RCE) без исключения. Шел, чтение и очистка базы данных, все что душе угодно.

    Чуть подробнее. Не так давно многие обратили внимание на то что рельсы по умолчанию принимают не только x-www-form-urlencoded параметры, но и XML/JSON. А XML внутри себя принимает также такой тип данных как YAML:
    <foo type="yaml">
    ...
    </foo>
    
    

    А YAML в свою очередь очень гибкий формат и позволяет создавать инстансы произвольных классов с последующей задачей через [] метод произвольных параметров — например.
    А в свою очередь в огромной классовой архитектуре Rails и сопутствующих джемов можно найти такой класс чтобы во время его инициализации(initialize) или назначения аттрибутов через [] был выполнен произвольный код из этого самого YAML текста.
    Умельцы нашли несколько способов — например через класс ActionDispatch::Routing::RouteSet::NamedRouteCollection
    Статья с описанием на официальном блоге и рекомендации по обновлению.

    P.S. эксплоит в сети вот уже часов 12. эпично. вас предупреждали
    Метки:
    Поделиться публикацией
    Похожие публикации
    Комментарии 140
    • 0
      Это действительно эпично. И печально.
      Я правильно понимаю, об уязвимости теоретически кто-то мог знать давно?

      Сам на Rails не пишу, но использую часто.
      • +32
        почти уверен что до 2013 о ней никто не знал. там эпичная цепочка генераторов и мы всем твиттером залезли в psych/params parser только когда искали очередной обход предыдущей CVE. И нашли МИФРИЛ В ГЛУБИНАХ МОРИИ АХАХА
        • +2
          Обновление до 3.2.11 решит проблемы?
          • +13
            Да. Обновление до django unchained решит уж точно
            • +5
              До Django получится graceless degradation, мы так не работаем.
              • +7
                Я даже знаю, что открываю ящик Пандоры, но не могли бы знающие и знакомые с обеими технологиями люди обьективно прояснить по хардкору в чем рельсы принципиально лучше и хуже джанго?
                Из чисто научного интереса спрашиваю.
                • +3
                  Научный интерес не способен охватить вопросы предпочтений, иначе жизнь была бы сильно проще и лучше.

                  Лично мне очень не нравятся отступы и ряд других традиций в Python, вроде стиля именования приватных методов. Недавно видел, что Django ругают за то, что к нему сложно прикрутить поддержку нереляционных хранилищ и всякие CKEditor (не проверял эту информацию).

                  Ruby решает поставленные задачи, и решает их очень хорошо. Я говорю в первую очередь не о Web-разработке. Предлагаю закрыть тему, иначе начнётся ад и мусор.
                  • +3
                    ты не 'eveel' в тексте нету ни единого «бл*ть»!
                  • 0
                    А где ruby преуспел кроме веб разработки?
                    • 0
                      DSL же. Rake, Chef как минимум.
                      • –1
                        Chef — да, согласен.
                      • +1
                        Можно подумать, что веб-разработка – это какая-то одна задача
                        • –1
                          Если перефразировать — Ruby без Rails редко используется.
                          • 0
                            Много чаще, чем вы думаете.
                            • 0
                              Ну я сам программист на Rails, не вижу просто ничего на ruby без rails, ни консольных утилит ни демонов/серверов, ни десктопных приложений. Может какие-то и есть, но не в таком количестве как python/perl.
                              • 0
                                Вообще-то Ruby задумался как альтернатива Perl в Unix-системах. То, что вы не видите, это еще не означает, что этого нет. Многие люди разрабатывают просто на Ruby — почитайте хотя бы официальный форум Ruby.
                                Факт в том, что в самом Ruby заложены очень мощные возможности как самостоятельного скриптового языка.
                                А то, что появился Ruby on Rails еще раз доказывает универсальность и гибкость языка Ruby.
                                И еще один момент. Сколько людей сейчас занимаются разработкой скриптов и демонов, а сколько веб-разработкой… почувствуйте разницу, как говорится.
                                • +1
                                  Я вообще не рубист и не питонист. Ну то есть абсолютно и совсем, но видно, что питон явно используется чаще чем руби, «как альтернатива Perl в Unix-системах»
                                  • 0
                                    Всему свое время. Очень большую роль играет привычка как таковая. Я вот в свое время скрипты только на Perl писал и ни о каком python не думал.
                                    Сейчас перешел на Ruby и для меня Perl уже не существует, а python как не было так и нет — я в нем АБСОЛЮТНО НИКОГДА не нуждался.
                                    Один лишь раз посмотрел в сторону python ради научного интереса — увидел форматирование с помощью отступов — плюнул и сразу отвернулся.
                                    • +1
                                      Ну, наверное, вы — исключение. Я вот регулярно вижу какие-то утилитки на питоне. И никогда — на руби)
                                      • 0
                                        У меня вообще нет привычки рыться без надобности в системе и высматривать какие-то утилитки — бесполезная трата времени. Для меня ОС — это инструмент, которым я пользуюсь. Один раз правильно настроил и этого достаточно.
                                        Возможно, на Ruby значительно меньше утилит, но он нашел себе более достойное и востребованное применение на просторах Интернет.
                                        И могу сказать совершенно уверенно — Ruby on Rails — очень удобная и качественная система разработки веб-приложений, и я считаю, именно благодаря тому, что написана она на Ruby.

                                        А насчет уязвимостей… покажите мне хоть одну систему, в которой ни разу было не найдено ни одной уязвимости.
                                        Надежность системы характеризуется тем, как быстро реагируют разработчики и исправляют баги.
                                        • 0
                                          У меня вообще нет привычки рыться без надобности в системе и высматривать какие-то утилитки — бесполезная трата времени. Для меня ОС — это инструмент, которым я пользуюсь

                                          Вы это сейчас к чему сказали то, а? Ну вот просто вообще не понимаю, при чём тут это.

                                          Я лишь говорю о том, что руби нифига не популярный в качестве никсового языка в отличии от питона, а вы тут мне начинаете рассказывать, как вы ОС пользуетесь)
                                          • –1
                                            Я уже сказал, что дело времени…
                                            • 0
                                              Питон — 91й год, Руби — 95й. Правда думаете, что дело в этой разнице в 4 года?
                                              • –1
                                                Да, очень вероятно. Дело времени и дело привычки. Кто-то в свое время заметил python и понеслось, а Ruby совсем недавно «вынырнул», кстати, благодаря Rails. Язык должен быть замечен, опробован, тогда его начинают использовать.
                                                Мне вот без разницы, какой язык используется чаще в никсах как скриптовый. Сейчас python, потом другой на смену придет… все так изменчиво в этом мире.
                                                Ну возьмем, к примеру, Perl. Ведь сначала подавляющее большинство сайтов писалось именно на нем. И? Появился PHP и очень просто вытеснил Perl с этой ниши.
                                            • 0
                                              Я знаю весьма популярный homebrew например…
                                          • 0
                                            На какой системе сидите?
                                            • 0
                                              Кубунту
                                              • 0
                                                Про маковый homebrew не слышали?
                                                • 0
                                                  Я не отрицаю, что приложения на руби есть. Я говорю о том, что Питон в качестве скриптового языка в никсах используется значительно чаще руби. Да щас уже Нод.жс используется, наверное, чаще руби.
                                            • 0
                                              Поддерживаю, ни Руби ни Скала не станут языками для разработки скриптов потому как они элементарно стартуют очень медленно. Никому не нужны такие мучения. А с Питоном таких проблем нету. Только нажал Enter, сразу ответ в консоли.
                                              • 0
                                                Ээмс. Объясните?

                                                shock@notebook:~$ time python -c "print 123"
                                                123
                                                real    0m0.023s
                                                user    0m0.016s
                                                sys     0m0.004s
                                                
                                                shock@notebook:~$ time ruby -e "print 123"
                                                123
                                                real    0m0.025s
                                                user    0m0.020s
                                                sys     0m0.000s
                                                

                                                • 0
                                                  Ну, добавьте пару импортов стандартных гемов и почувствуйте разницу.
                                                  Я пробовал Selenium-тесты запускать под руби и под питоном, питон по-любому быстрее стартовал. Я уже не говорю про юнит-тесты для рейлс, без костылей ими пользоваться просто утомительно.
                                                  • 0
                                                    # time ruby -e «print 123»
                                                    123
                                                    real 0m0.037s
                                                    user 0m0.010s
                                                    sys 0m0.000s
                                                    # time python -c «print 123»
                                                    123

                                                    real 0m0.016s
                                                    user 0m0.000s
                                                    sys 0m0.010s
                                                    # time perl -e «print 123»
                                                    123
                                                    real 0m0.003s
                                                    user 0m0.000s
                                                    sys 0m0.000s

                                                  • 0
                                                    Какую ерунду вы говорите! Руби везде используется как скриптовый язык — и все со стартом там нормально.
                                                    • +2
                                                      везде используется как скриптовый язык

                                                      Везде — это где?
                                                • –1
                                                  Да это индивидуально всё. Пишу веб приложения на rails, скрипты на perl, и делать наоборот нет никакого желания.
                                            • 0
                                              Эпическая управлялка portinstall/portupgrade пакетами/портами в FreeBSD написана полностью на руби.
                                              Puppet, Chef тот же уже упоминали. Довольно много утилит, и главное, их очень удобно писать.
                                              • 0
                                                Итого насчитали 3 штуки.
                                                А есть примеры демонов? Или того что можно запустить в цикле или а-ля xargs и оно будет работать быстро.
                                                Как на счёт деплоя? Пакет ruby 1.8 не совместим с ruby 1.9 в моём дистре.

                                                Про chef у меня подозрение что это отдельной статьёй идёт — DSL — на ruby любят писать DSL (с поводом и без повода), хотя он и в любом другом языке нормально реализуется.
                                                • 0
                                                  Bluepill и God — управление демонами. Альтернатива — Monit на Perl.

                                                  В деплое — Chef, Puppet, Capistrano, Vlad the Deployer.

                                                  Даже для Git — Gitlab, git-commit-notifier, Gitorious.
                                                  • 0
                                                    Ну и касательно DSL, — все-таки на Ruby проще.

                                                    Пишут аналоги RSpec, Cucumber и других популярных Ruby DSL и на других языках, но получается многословнее.
                                      • –1
                                        > всякие CKEditor
                                        оО
                                        Это же яваскрипт-редактор, как его может быть сложно прикрутить к чему бы то ни было? (Прикручивал CKEditor и TinyMCE к джанге без каких-либо проблем)
                                  • +9
                                    Обновляемся до джанго и через месяц понимаем, что у нас теперь 5 критических уязвимостей.
                                    • +3
                                      В джанго никогда не было подобных дыр. С другой стороны сравнивать эти фреймворки по мощности я бы остерегся.
                                      • +3
                                        Вы представляете, о рельсах тоже так думали. До сего момента.
                                        • +2
                                          Да нет, тут место очевидно. В джанго нет такой гибкости, нет такого количества хелперов и такой заботы о времени программиста. В ней просто меньше возможностей получить дыру с одной стороны, и комьюнити больше думает о таких вопросах с другой.

                                          Ну что ж, теперь у нас есть ребята, которые озаботились вопросом поиска дыр в RoR, спасибо.

                                          А главное не теряйте фокус — я джанго не люблю, и не принижаю рельсы на фоне — ну нашли, пофиксили, работаем дальше. На джанго достаточно геморно решаются многие повседневные задачи, и админка ее мусор. И шаблоны. И формы. И ORM.
                                          • 0
                                            Это только постфактум стало очевидно. Через много лет.
                                      • +1
                                        На время, пока ты и до него не доберешься? %)
                                    • +25
                                      Хомяков! Хватит ломать интернет! :)
                                      • +2
                                        а чё я то, петька иванов charliesome первый начал. а серега белов ben murphy вообще под все платформы написал
                                    • +1
                                      Егор, мы знали, что без тебя это не могло обойтись! Ты большой молодец, что находишь эти дыры и репортишь разработчикам.

                                      Скажи пожалуйста, у тебя только на Rail глаз наметан, или ты еще где-то проблемы ищешь? Интересуют Socket.io, Django и Express.
                                      • +1
                                        никаких Socket.io, Django и Express только Rails. Я — патриот
                                  • +4
                                    Решето... Комменты в оффициальном блоге доставляют.
                                    • +7
                                      понеслась…
                                      image
                                      • +4
                                        я делаю `touch homakov_at_gmail_com_hire_me_plz_i_can_Fix_dat
                                        • –4
                                          Скрипткиддис
                                          • +4
                                            Скрипткиддис — это мое второе имя
                                            • +4
                                              Оставил машину, возвращаешься, а там разбито окно и внутри кирпич с запиской: «homakov_at_gmail_com_hire_me_plz_i_can_Fix_dat».
                                              Толи хулиганство, толи вымогательство.
                                              Не понимал и не понимаю подобные выходки. Если приписываешь себя к экспертам по безопасности, подобное — это низко.

                                              А по природе этого шума — все как обычно, в погоне за упрощением конфигурации в угоду новичкам, включили все ненужное и отключили все нужное. Было бы не так, таких ужасных масшабов у этой уязвимости бы не было. Но тогда быть может и о рельсах никто бы не слышал :)
                                              • –1
                                                мсье не распознал шутки? делать мне нехер скрипткидничать
                                        • +40
                                          Абсолютная уязвимость. Все версии. Все полномочия. Просто шедевр. Браво!
                                          • –1
                                            Не все. В RoR < 2.0 уязвимости нет :)
                                            • +1
                                              Все актуальные ;)
                                              • –1
                                                Простите — 2.3.10 — актуальна?
                                                • 0
                                                  ВСЕ
                                                  • 0
                                                    Я знаю, что в 2.3.10 уязвимость, я говорю, эта версия как фреймворк вообще актуальна сейчас?
                                                    • 0
                                                      Писать на вторых рельсах что-то новое никому не взбредет, разве что поддерживать уже готовый сайт.

                                                      Или вы вообще не в курсах?:) 8 января как раз таки 3.2.11 вышла, а четвертые рельсы в активной разработке.
                                                      • 0
                                                        Эм, простите, что возможно ввел вас в заблуждение своим вопросом. Я вкурсе. Я к тому, что половино, того что пишется под рельсы так сказать third-party уже под вторые не работает. Мой гем, которому уже 1 год примерно вообще не писался под вторые рельсы и впринципе там работать не может.
                                                      • +2
                                                        Она имеет место быть на продакшенах)
                                                        • 0
                                                          Мне кажется только ленивый еще не переехал.
                                                          • +5
                                                            Ну причины могут быть разными)) «Работает — не мучай»
                                                            • –10
                                                              Ну, вы знаете, Windows 98, Gentoo, Mac Os IX тоже ведь работают да?
                                                              • +6
                                                                Вы так говорите, будто это что-то плохое ;)
                                                                • –2
                                                                  Перфокарты и накопители на магнитных дисках тоже были когда-то удобным изобретением и я с трепетом вспоминаю те дни, но их как-то уже не видно ведь правильно. Это не что-то плохое, просто есть что-то более новое и современное.
                                                                • +12
                                                                  а при чём тут gentoo?
                                                                  • +1
                                                                    Это перечислены операционки из ночных кошмаров.
                                                                    • +1
                                                                      Гентушники оскорблены?
                                                  • –2
                                                    там что то типа 1.2.1 непомню. Уязвимость появилась 6 лет назад )

                                                    Браво? Я теперь отвожу глаза когда люди говорят про rails security. хотя еще пару недель назад я бы начал доказывать что XSS защита, CSRF защита блабла(
                                                    • +4
                                                      Ну и что? Все точно также говорили про самый защищенный форум IPB! А только я там нашел две 0day бреши.
                                                      Ошибки есть везде! Надо их только искать и то что в последнее время столько усилий уделяется Rails Security — это очень хорошо! Чем больше уязвимостей найдено, тем вероятнее меньше будет в продакшене.
                                                      • +1
                                                        Где это говорили про защищенность IPB? В каждой версии уязвимости.
                                                      • 0
                                                        Теперь можно делать тоже самое, но с поправкой на версию =)
                                                        Тут вспоминается предыдущая статья на эту тему, где было указано как отключить обработку всего кроме www-forms, так что думаю затронет большенство, но не пароноиков =)
                                                    • +2
                                                      А что эпичного в том, что эксплойт доступен 12 часов, если исправление выпущено 48 часов назад?
                                                      • 0
                                                        может в том что не все читают хакер ньюс и даже 50 процентов эппов сейчас не обновились? Я думаю кроме топовых рельс ресурсов никто особо не пошевелился
                                                        • 0
                                                          Не все, конечно. Но есть ведь ещё weblog.rubyonrails.org :)
                                                          • +2
                                                            Ни и плевать на эти 50%. Если в Windows находят что-то типа уязвимости в RPC dcom вам, как админу, не плевать на то, что остальные 90% не ваших пользователей подвержены риску? Мне было бы как-то абсолютно.
                                                            Если ты серьезный Developer — ты следишь за новостями. Меня вообще очень сильно поразило то, что для 2й ветки выпустили обновление.
                                                            • +2
                                                              Но, но! Я уже обновил половину своих приложений (самых выставленных в мир)!
                                                              Самое обидное — одновременно с такими важными обновлениями выходит обновление какого-нибудь гема (в данном случае whenever 0.8.1), которое ломает что-нибудь до кучи и начинаешь с весельем одно обновлять, другое откатывать, писать в багтрекер третьего :-)
                                                              • 0
                                                                рекомендую фиксировать в таких случаях версию гема через "~> version" пока он не доломан обновлением :)
                                                            • –1
                                                              а любой, самый застарелый сервачок с рельс эппчиком == шел. можно нафигачить кучу лома и продать
                                                              • +22
                                                                Эпично то, что люди узнают об этом на хабре.
                                                                • –14
                                                                  Ссори, нет кармы, но, как вы правы!
                                                                  • –11
                                                                    Ой, ну простите, давайте вообще карму сольем, что бы я вообще никогда никому плюсков не понаставил не дай Бог. Неадекватная у вас реакция, простите!
                                                                • 0
                                                                  В твиттере уже как 7-8 дней (в зависимости от пояса) весит.
                                                                  • 0
                                                                    И все уважающие себя компании давно залатались уже сами без ожидания апдейта рельсов. А потом сделали пул реквест на апдейт рельсов. То, что вы не в состоянии поправить уязвимость в, О Боже, OpenSource проекте совсем не делает вам чести.
                                                                  • +16
                                                                    Вчера мой хостер прислал письмо про это:
                                                                    Вы получили это письмо, потому что один или несколько ваших проектов используют Ruby on rails.

                                                                    В этом популярном фреймворке была найдена уязвимость, которая позволяет выполнить любой код в контексте вашего приложения простым POST-запросом. Например, удалить всю информацию из таблицы базы данных без какой-либо проверки прав доступа. Подробнее об этой уязвимости можно прочитать в статьях на open.net и в блогах metasploit. Уязвимость получила название CVE-2013-0156.

                                                                    В качестве экстренной меры мы заблокировали отправку POST-запросов с XML-содержимым для всех Rails проектов, размещенных на наших серверах. Однако, такая блокировка не гарантирует безопасность ваших проектов, а лишь блокирует очевидный способ эксплуатации уязвимости.

                                                                    Разработчики Ruby on rails оперативно выпустили обновление безопасности для всех версий RoR, начиная с 2.3. Вам следует незамедлительно обновить версию фреймворка до 3.2.11, 3.1.10, 3.0.19, 2.3.15 или старших, в зависимости от ветки, которую вы используете.

                                                                    После обновления вы можете отключить блокировку CVE-2013-0156 на уровне прокси в настройках проекта.

                                                                    Напоминаем вам, что вы несете персональную ответственность за любые данные, размещенные вами на наших ресурсах, в том числе и за регулярную проверку на уязвимости вашего кода.
                                                                    • +3
                                                                      Так самое ж интересное, имя хостера: где оно? :)
                                                                      • +3
                                                                        locum.ru — уже сказал им спасибо в твиттере.
                                                                  • 0
                                                                    Возможно, что доступно это много дольше уже.
                                                                    Просто не все специалисты сторонники full disclosure.
                                                                    Кто-то спокойненько в течение ряда лет сливал базы с разных сайтов.
                                                                    Теперь дыра закроется.
                                                                    Как вариант, вполне может быть, что эта дыра была введена в код намеренно :)
                                                                    • +1
                                                                      Новая теория заговора? :)
                                                                      Ruby on Rails — фреймворк зла.
                                                                      Ruby — само зло.
                                                                      Rubyists — апологеты зла.
                                                                      37signals — кузница зла!
                                                                      • 0
                                                                        Я лет 15 назад выкладывал дыры публично — отсылал к Касперскому и производителям. Потом один чел меня от этого отговорил — переубедил в другую политику безопасности. Некоторы зарепорченные мною дыры, в т.ч. у Каспера, до сих пор не пропатчены :) В общем, нечего делать бесплатную работу за тех, кто продает скареваре типа Каспера и других все равно нифига не помогающих пвсевдо-антивирусов. Максимум, если добрая душа, то писать производителю — без публичных эксплоитов.
                                                                        • 0
                                                                          Rails не зарабатывает на этом ничего…
                                                                          • 0
                                                                            Ну и бог с ним. Просто знаю примеры реальной жизни. Когда в репозитарий вводились дыры специально для последующих атак.
                                                                  • +1
                                                                    Блин, это то же самое, что писать:
                                                                    eval params[:code]
                                                                    
                                                                    Когда уже разрабы поймут, что писать секьюрно, это значит проверять валидность foreign input.
                                                                    Без разницы каким способом. Всякие XSS/CSRF и со фильтры помогут в лучшем случае до следущей найденой vulnerability, типа приведенной в статье.
                                                                    Сам на релсах пишу редко, но используя «чужой» xml в этом случае, либо поотключал бы нафиг все что может загрузить любой не предусмотреный мной класс (тот же yaml если оно не надо), либо использовал бы template для десериалезации (т.е. десериализируем в пустой инстанц класса/интерфейса, все что им не предусмотрено идет лесом или вылетает с исключением).
                                                                    Простой parse xml делаем только если оно наше, или xml пришел из источника с уровнем доверия > 100500.
                                                                    • +3
                                                                      Никогда по запарке не оставляли ничего такого в коде?
                                                                      И когда уже люди поймут, что Open Source он на то и Open Source, что — не нравится — измени. Ты же знаешь как лучше — помоги любимому проекту, не останься в стороне.
                                                                      • 0
                                                                        К foreign input отношусь всегда оч. серьезно. Думаю поэтому не оставлял (хотя 100% даже бог не даст:).
                                                                        Насчет помоги, у меня таких проектов тьма, любимый Tcl и co, т. ч. с этим не ко мне.
                                                                        Но ваш посыл в принципе верный. Еще бы знать, где рыть — а то шерстить несколько десятков тысяч строчек в поисках уязвимостей — то еще удовольствие. Вот тот кто коммитил это, мог бы и подумать насчет уязвимостей. И по запарке — это не оправдание для проъекта с огромной коммюнити и десятками разрабов.
                                                                        • 0
                                                                          Это к слову сказать не оправдание для комьюнити (меня в частности), а ошибаются все. И не все сразу становятся такими прям опытными программистами. К foreign input вы вероятно начали серьезно относиться с какого-то опеределенного времени. Не реально что бы вы сразу стали учитывать этот фактор в своих программах — на начальных этапах совсем об этом не задумываешься, а так как ошибка весьма и весьма старая, то могу сказать, что Rails тогда не набрала такой критической популярности как сейчас. Оттого и малый интерес со стороны хакеров к ней был.
                                                                          И еще — если всегда отвлекаться на все сопутствующие вероятностные факторы, то можно улезть в такие дебри, так и не завершив свой проект.
                                                                          • 0
                                                                            И еще — если всегда отвлекаться на все сопутствующие вероятностные факторы, то можно улезть в такие дебри, так и не завершив свой проект.
                                                                            Это да, очень знакомо…
                                                                          • 0
                                                                            /offtop
                                                                            всегда было интересно, что заставляет людей сокращать слово «очень».
                                                                            • 0
                                                                              нехватка времени + невозможность интерпретировать это сложившееся сокращение по другому. Много раз замечал за собой и другими так же и произношение его.
                                                                      • +1
                                                                        Rails 4 при чем? Он то как раз выйдет секьюрным (от этой дыры как минимум).
                                                                        • +3
                                                                          Уже сейчас многие используют в продакшене 4-е рельсы.
                                                                          • 0
                                                                            Многие, это кто? Они ж вроде в глубокой бете ещё. Да и гемы не все их поддерживают. Я бы поостерёгся, наверное…
                                                                            • 0
                                                                              gist.github.com, 37signals новый basecamp на нём вроде пилят тоже. Сейчас поищу тот твит…

                                                                              Вот: twitter.com/dhh/status/287223713252913152

                                                                              И там же в комментариях говорят, что gist'ы тоже уже на 4-х рельсах.
                                                                        • –6
                                                                          Может пора мигрировать на другой Ruby фреймворк?
                                                                          Самый популярный не обязательно значит самый лучший.
                                                                          • +5
                                                                            Use sinatra, luke! :) На самом деле, патч выпустили очень быстро, и это радует.
                                                                            • –4
                                                                              Неужели мир Ruby фреймворков настолько о г р а н и ч е н?
                                                                              • +3
                                                                                Ну, десяток точно наберется: accidentaltechnologist.com/ruby/10-alternative-ruby-web-frameworks/

                                                                                Просто дело в том, что sinatra и rails гораздо удобнее (для меня) всего, с чем я работал ранее (yii, zend, django).
                                                                                • 0
                                                                                  Спасибо, вопрос был риторическим…
                                                                                  А статья сильно отдаёт нафталином … :)
                                                                                • +3
                                                                                  Так вот кого радует фрагментация линукса.
                                                                            • +1
                                                                              С этим обновлением появилась такая вот проблема: github.com/rails/rails/issues/8832
                                                                              • –1
                                                                                кстати баг [1,nil] я зарепортил и у него очень мало способов применения(только пост) поэтому имхо вообще зря фиксили
                                                                              • 0
                                                                                У меня есть сайт на rails 2.3.2, я так понимаю, на нем уязвимость отсуствует? (я не программист, поэтому могу не понимать тонкости)
                                                                                • +1
                                                                                  Присутствует. Обновитесь до 2.3.15
                                                                                  • 0
                                                                                    echo "ActionController::Base.param_parsers.delete(Mime::XML)" >> RAILS_DIR/config/environment.rb
                                                                                    • 0
                                                                                      эм… если это способ решения проблемы — можно это сделаете вы, а я вам, например, какую-нибудь книжку с Озона отправлю?
                                                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                                                  • +4
                                                                                    При чем тут руби?
                                                                                    • +1
                                                                                      Действительно. Во многих языка сборка/деплой пакета предполагает выполнение произвольного кода.
                                                                                      • +12
                                                                                        Руби ни при чём, но автор аццкая сотона ;)
                                                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                                                          • 0
                                                                                            IMHO автор комментария имел ввиду, что Ruby не есть Rails. Поэтому говорить что Ruby — решето, по крайней мере бред.
                                                                                        • 0
                                                                                          хероку уж точно решето. я в них находил CSRF вида aaa.heroku.com?rename=bbb надо было просто заставить владельца аппа посетить и его приложение переименуется
                                                                                          и вот вчера была статья на ХН про баг в востановлении пароля(можно любому юзеру восстановить)
                                                                                          heroku stuff? и даже никакого баунти? а вот деньги нанимать матза у них есть значит

                                                                                          и наконец мой друган и пендосии тоже секурянт по рельсам нашел интересную уязвимсть
                                                                                          titanous.com/posts/vulnerabilities-in-heroku-build-system
                                                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                                                          • 0
                                                                                            Очень интересно, но почему не отдельный пост?
                                                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                                          • 0
                                                                                            Опубликовал краткую выжимку по поводу уязвимости в Rails
                                                                                            • 0
                                                                                              Обновил рельсы, поймал уйму странных багов, в том числе undefined method `to_i`
                                                                                              В итоге замена в Gemfile
                                                                                              gem 'rails', '3.2.11'
                                                                                              на
                                                                                              gem 'rails', :git=>'git://github.com/rails/rails.git', :branch => '3-2-stable'
                                                                                              решила мои проблемы.

                                                                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.