Rails 3.2.12, 3.1.11, and 2.3.17 have been released
weblog.rubyonrails.org
weblog.rubyonrails.org
For example, https://github.com/rails/rails/pull/8718 is a PR that was merged into 3-2-stable to deal with a regression in 3.2.8.
This makes it incredibly easy for people to upgrade, and minimizes chances of regressions.
The next non-security release of 3.2.x should include that change.
And it's one thing to detect the exploit and another to actually run it and post it on the web before people have time to patch their installations (talking about hours!).
That said the JSON issue looks worrying, so an update and redeploy is necessary.
My co-founder and I had talked about YAMLgate when it had happened--our conclusion was that Rails is going to be under very close scrutiny for a while, and that there will be a lot of these things found, but that the framework will be all the stronger for it.
Always bear in mind this: even if it means more work for admins and devs, this promptness of response and willingness to admit failings is a sign of a healthy ecosystem.
RoR maintainers should be commended for their ongoing prompt responses to defects, but the likelihood ...that there will be a lot of these things [still to be] found... is not something to celebrate.
Every project has bugs, every framework has it's security problems, but the severity and frequency of the issues is such that many will conclude that RoR is not mature, stable or safe enough for production use.
I can only conclude that a large proportion of HN readers have most of their eggs in the RoR basket, so spinning this into a positive is the best way to convince themselves that "..more work for admins and devs.." is a GOOD thing.
Anything that helps encourage people to be open about their work and honest in their failings in our industry is, in my book anyways, a Good Thing.
Don't be hating on Ruby folks for trying to encourage good development practices.
That's not my issue though. The project's reputation is fiercely protected by it's community - and I wonder at what point this could be damaging. To borrow some terminology, they're not `user-space` bugs like the majority of PHP security flaws (for example). They're bugs in the firmament.
Talking to penetration testers, you often hear this story: if it's .NET, you're going to have a hard time; If it's PHP, you can count on the developer leaving an injection flaw of varying exploitability; If it's RoR, you can count on an out of date package with a critical flaw that bypasses the app entirely. (btw: I'm primarily a python/django person - I won't comment on that!).
Do any real life pentesters here on HN concur with this summary?
These discussions are usually filled with snark and people feeling righteous in their own framework choices, smiling and generalizing about the entire Ruby community. So there's a chasm between people saying "your framework sucks and you should feel bad" and people saying "ok this is actually a good thing".
I don't have an answer for that. Not to discount the work people do, but it feels weird to celebrate the existence of severe vulnerabilities because of the effort that goes into patching them. Perhaps the point is that the framework becomes more secure and vetted, but that's not something that can really be measured in that way, and a lot of observers will view the existence of so many high-profile vulnerabilities as a sign of poor design decisions.
Less magic, and more security thought would be good!
So there's a good reason to support both x and x-1, but less of a good case to support y, y-1, AND y-2: those people can more easily upgrade to y-1.
So, as you can see, it's not arbitrary: x and x-1 are supported, y and y-1 are supported. Just no series as of two revisions ago.
This just seems like laziness. At the very least, you don't just suddenly choose to end-of-life a version of software that's still in wide distribution. Give people a bit of notice!
Notice was given, in the post spelling out which versions are still supported a few weeks ago.
Even if the announcement weren't buried, most of us have development schedules that don't incude the spare time to completely upgrade our infrastructure with two weeks of lead time.
There's no real reason that this couldn't have been announced a few months in advance. I know that this is an open-source project, but one of the costs of having the immense privilege of users who depend on your project is that you make real efforts to give them a little notice before you deprecate their world.
Aside from the fact that this seems rather strange (to say the least), I'm guessing a lot of other people misread the policy too and simply assumed that 3.0.x would be patched if 2.3.x was.
http://railsapps.github.com/updating-rails.html
Let me know if I got anything wrong. It's for anyone who is not sure how to upgrade to a new Rails version.
You should also update your JSON gem.
How do tell the computer to start using the newest version of Rails?
Thanks!
That said, I keep the Rails Tutorial and sample application as up-to-date as possible—and in fact both have already been updated with the latest version. :-)
http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#se...
$ gem install rails -v 3.2.12
https://github.com/railstutorial/sample_app_2nd_ed/blob/mast... gem 'rails', '3.2.12'[CVE-2013-0276]: http://permalink.gmane.org/gmane.comp.security.oss.general/9...
[CVE-2013-0277]: http://permalink.gmane.org/gmane.comp.security.oss.general/9...
Honestly I don't want a Rails 4 until all the rest of this has been shaken free. I'd rather Rails-core and other security minded rubyists keep digging for exploits.
Maybe also, if ruby programmers learned to program (instead of doing banana driven lingo development) or committed suicide throwing themselves from a cliff (along with PHP developers) (like lemmings) we could also have a boring yet more secured internet.
Make no mistake, there are a pile of ruby programmers who do care about security and take this shit seriously. You probably use their code.
We're paying for the way that Rails was developed in the days prior to the Rails/Merb merge. There's a reason why the community split in those days.
Please don't paint all of us Rubyists with the same brush.