SQL Injection Flaw in Ruby on Rails

Published: 2013-01-09
Last Updated: 2013-01-09 15:37:46 UTC
by Rob VandenBrink (Version: 2)
3 comment(s)

A SQL Injection Flaw (CVE-2012-5664) was announced last week (Jan 2) in Ruby on Rails, but I think we missed reporting on it (thanks to one of our readers for pointing this out).  Updates that resolve this are: 3.2.10, 3.1.9, and 3.0.18

Because of the security profile of Ruby on Rails (the largest Ruby project around is one you should be familiar with - Metasploit), any security issues should be taken seriously.  However, the hype and hoopla that any site with RoR code on it is vulnerable is just that - the vulnerability being discussed is very specific in nature, but folks hear "sql injection" and (mistakenly as far as I can see) send it to the headline page.

A very complete explanation of the scenarios that are at issue are outlined in this here:
https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/DCNTNp_qjFM
and here:
http://blog.phusion.nl/2013/01/03/rails-sql-injection-vulnerability-hold-your-horses-here-are-the-facts/

Additional issues (CVE-2013-0155 and CVE-2013-0156) are resolved in these new releases also.

Update:

Thanks Ariel for pointing out that they've updated the original patch (just yesterday) with new RoR versions 3.2.11, 3.1.10, 3.0.19, and 2.3.15.  All previous versions should be considered vulnerable.  They're also ratcheting up the urgency in the language around this issue - perhaps there's a bit more of a problem here than originally thought?

You can follow the official revision history at: http://weblog.rubyonrails.org/releases/

===============
Rob VandenBrink
Metafore

 

3 comment(s)

Comments

Also note that MetaSploit is only hours away from weaponizing this exploit with a possible attack surface of 250K websites using RoR on their front end.

https://community.rapid7.com/community/metasploit/blog/2013/01/09/serialization-mischief-in-ruby-land-cve-2013-0156
My understanding is that 3.2.10 fixes a specific SQL Injection vulnerability, whereas 3.2.11 fixes two more vulnerabilities that allow a malicious user to bypass query clauses and to do all sorts of evil things using vulnerabilities in the parameter parsing code.
I show two options for mitigating this vulnerability with the open source ModSecurity WAF:

1) XML Schema Validation
2) Identifying Ruby code within the payload

Full blog post here - http://blog.spiderlabs.com/2013/01/modsecurity-mitigations-for-ruby-on-rails-xml-exploits.html

Diary Archives