First published: Wed Jun 13 2012(Updated: )
Originally, the <a href="https://access.redhat.com/security/cve/CVE-2012-2661">CVE-2012-2661</a> identifier has been assigned to the following issue: A security flaw was found in the way rubygem-activerecord, the ActiveRecord pattern for ORM, performed SQL query generation based on the content of params hash, when nested query paramaters were provided. If a Ruby on Rails application directly passed request params to the 'where' method of an ActiveRecord class, a remote attacker could use this flaw to cause the 'params[:id]' to return a specially-crafted hash, resulting into the WHERE clause of the SQL statement to query an arbitrary table with value of attacker's choice, leading to disclosure of sensitive information. (<a class="bz_bug_link bz_status_CLOSED bz_closed bz_public " title="CLOSED ERRATA - CVE-2012-2661 rubygem-activerecord: SQL injection when processing nested query paramaters" href="show_bug.cgi?id=827363">bug 827363</a>) Recently (2012-06-12) it has been reported: [1] <a href="https://groups.google.com/group/rubyonrails-security/browse_thread/thread/9782f44c4540cf59">https://groups.google.com/group/rubyonrails-security/browse_thread/thread/9782f44c4540cf59</a> that there still exists a variant of this attack, which is possible to exploit even when the upstream patch for the original <a href="https://access.redhat.com/security/cve/CVE-2012-2661">CVE-2012-2661</a> issue has been applied. More from [1]: -- Due to the way Active Record handles nested query parameters, an attacker can use a specially crafted request to inject some forms of SQL into your application's SQL queries. All users running an affected release should upgrade immediately. Please note, this vulnerability is a variant of <a href="https://access.redhat.com/security/cve/CVE-2012-2661">CVE-2012-2661</a>, even if you upgraded to address that issue, you must take action again. Impacted code directly passes request params to the `where` method of an ActiveRecord class like this: Post.where(:id => params[:id]).all An attacker can make a request that causes `params[:id]` to return a specially crafted hash that will cause the WHERE clause of the SQL statement to query an arbitrary table with some value. -- Proposed upstream patches (see attachments).
Credit: secalert@redhat.com secalert@redhat.com
Affected Software | Affected Version | How to fix |
---|---|---|
redhat/rubygem-activerecord | <3.2.6 | 3.2.6 |
redhat/rubygem-activerecord | <3.1.6 | 3.1.6 |
redhat/rubygem-activerecord | <3.0.14 | 3.0.14 |
rubygems/activerecord | <2.3.15 | 2.3.15 |
rubygems/activerecord | >=3.0.0.beta<3.0.14 | 3.0.14 |
rubygems/activerecord | >=3.2.0<3.2.6 | 3.2.6 |
rubygems/activerecord | >=3.1.0<3.1.6 | 3.1.6 |
rubyonrails Rails | =3.0.0 | |
rubyonrails Rails | =3.0.0-beta | |
rubyonrails Rails | =3.0.0-beta2 | |
rubyonrails Rails | =3.0.0-beta3 | |
rubyonrails Rails | =3.0.0-beta4 | |
rubyonrails Rails | =3.0.0-rc | |
rubyonrails Rails | =3.0.0-rc2 | |
rubyonrails Rails | =3.0.1 | |
rubyonrails Rails | =3.0.1-pre | |
rubyonrails Rails | =3.0.2 | |
rubyonrails Rails | =3.0.2-pre | |
rubyonrails Rails | =3.0.3 | |
rubyonrails Rails | =3.0.4-rc1 | |
rubyonrails Rails | =3.0.5 | |
rubyonrails Rails | =3.0.5-rc1 | |
rubyonrails Rails | =3.0.6 | |
rubyonrails Rails | =3.0.6-rc1 | |
rubyonrails Rails | =3.0.6-rc2 | |
rubyonrails Rails | =3.0.7 | |
rubyonrails Rails | =3.0.7-rc1 | |
rubyonrails Rails | =3.0.7-rc2 | |
rubyonrails Rails | =3.0.8 | |
rubyonrails Rails | =3.0.8-rc1 | |
rubyonrails Rails | =3.0.8-rc2 | |
rubyonrails Rails | =3.0.8-rc3 | |
rubyonrails Rails | =3.0.8-rc4 | |
rubyonrails Rails | =3.0.9 | |
rubyonrails Rails | =3.0.9-rc1 | |
rubyonrails Rails | =3.0.9-rc2 | |
rubyonrails Rails | =3.0.9-rc3 | |
rubyonrails Rails | =3.0.9-rc4 | |
rubyonrails Rails | =3.0.9-rc5 | |
rubyonrails Rails | =3.0.10 | |
rubyonrails Rails | =3.0.10-rc1 | |
rubyonrails Rails | =3.0.11 | |
rubyonrails Rails | =3.0.12 | |
rubyonrails Rails | =3.0.12-rc1 | |
rubyonrails Rails | =3.0.13-rc1 | |
Ruby on Rails | <=3.0.13 | |
Ruby on Rails | =3.0.4 | |
rubyonrails Rails | =3.1.0 | |
rubyonrails Rails | =3.1.0-beta1 | |
rubyonrails Rails | =3.1.0-rc1 | |
rubyonrails Rails | =3.1.0-rc2 | |
rubyonrails Rails | =3.1.0-rc3 | |
rubyonrails Rails | =3.1.0-rc4 | |
rubyonrails Rails | =3.1.0-rc5 | |
rubyonrails Rails | =3.1.0-rc6 | |
rubyonrails Rails | =3.1.0-rc7 | |
rubyonrails Rails | =3.1.0-rc8 | |
rubyonrails Rails | =3.1.1 | |
rubyonrails Rails | =3.1.1-rc1 | |
rubyonrails Rails | =3.1.1-rc2 | |
rubyonrails Rails | =3.1.1-rc3 | |
rubyonrails Rails | =3.1.2 | |
rubyonrails Rails | =3.1.2-rc1 | |
rubyonrails Rails | =3.1.2-rc2 | |
rubyonrails Rails | =3.1.3 | |
rubyonrails Rails | =3.1.4 | |
rubyonrails Rails | =3.1.4-rc1 | |
rubyonrails Rails | =3.1.5 | |
rubyonrails Rails | =3.1.5-rc1 | |
rubyonrails Rails | =3.2.0 | |
rubyonrails Rails | =3.2.0-rc1 | |
rubyonrails Rails | =3.2.0-rc2 | |
rubyonrails Rails | =3.2.1 | |
rubyonrails Rails | =3.2.2 | |
rubyonrails Rails | =3.2.2-rc1 | |
rubyonrails Rails | =3.2.3 | |
rubyonrails Rails | =3.2.3-rc1 | |
rubyonrails Rails | =3.2.3-rc2 | |
rubyonrails Rails | =3.2.4 | |
rubyonrails Rails | =3.2.4-rc1 | |
rubyonrails Rails | =3.2.5 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.