CVE-2012-2660
Action Pack contains database-query restrictions bypass
actionpack/lib/action_dispatch/http/request.rb in Ruby on Rails before 3.0.13, 3.1.x before 3.1.5, and 3.2.x before 3.2.4 does not properly consider differences in parameter handling between the Active Record component and the Rack interface, which allows remote attackers to bypass intended database-query restrictions and perform NULL checks via a crafted request, as demonstrated by certain "[nil]" values, a related issue to CVE-2012-2694.
Exploit likelihood
What each source reports
NVD Score used
6.4
actionpack/lib/action_dispatch/http/request.rb in Ruby on Rails before 3.0.13, 3.1.x before 3.1.5, and 3.2.x before 3.2.4 does not properly consider differences in parameter handling between the Active Record component and the Rack interface, which allows remote attackers to bypass intended database-query restrictions and perform NULL checks via a crafted request, as demonstrated by certain "[nil]" values, a related issue to CVE-2012-2694.
- Record
CVE-2012-2660- CVSS 2.0
- 6.4 Medium
AV:N/AC:L/Au:N/C:P/I:P/A:N - Weakness
- CWE-264
- Updated
- 2026-11-02
CVE List No score
actionpack/lib/action_dispatch/http/request.rb in Ruby on Rails before 3.0.13, 3.1.x before 3.1.5, and 3.2.x before 3.2.4 does not properly consider differences in parameter handling between the Active Record component and the Rack interface, which allows remote attackers to bypass intended database-query restrictions and perform NULL checks via a crafted request, as demonstrated by certain "[nil]" values, a related issue to CVE-2012-2694.
- Record
CVE-2012-2660- Updated
- 2026-11-02
EUVDEUVD-2017-0251 No score
actionpack/lib/action_dispatch/http/request.rb in Ruby on Rails before 3.0.13, 3.1.x before 3.1.5, and 3.2.x before 3.2.4 does not properly consider differences in parameter handling between the Active Record component and the Rack interface, which allows remote attackers to bypass intended database-query restrictions and perform NULL checks via a crafted request, as demonstrated by certain "[nil]" values, a related issue to CVE-2012-2694.
- Record
EUVD-2017-0251- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-hgpp-pp89-4fgf No score
Action Pack contains database-query restrictions bypass
actionpack/lib/action_dispatch/http/request.rb in Ruby on Rails before 2.3.16, 3.0.x before 3.0.13, 3.1.x before 3.1.5, and 3.2.x before 3.2.4 does not properly consider differences in parameter handling between the Active Record component and the Rack interface, which allows remote attackers to bypass intended database-query restrictions and perform NULL checks via a crafted request, as demonstrated by certain [nil] values, a related issue to CVE-2012-2694.
- Record
GHSA-hgpp-pp89-4fgf- Weakness
- CWE-284
- Updated
- 2026-11-02
OSVGHSA-hgpp-pp89-4fgf No score
Action Pack contains database-query restrictions bypass
actionpack/lib/action_dispatch/http/request.rb in Ruby on Rails before 2.3.16, 3.0.x before 3.0.13, 3.1.x before 3.1.5, and 3.2.x before 3.2.4 does not properly consider differences in parameter handling between the Active Record component and the Rack interface, which allows remote attackers to bypass intended database-query restrictions and perform NULL checks via a crafted request, as demonstrated by certain [nil] values, a related issue to CVE-2012-2694.
- Record
GHSA-hgpp-pp89-4fgf- Weakness
- CWE-284
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
actionpackRubyGems |
3.1.0 up to 3.1.5 | 3.1.5 |
actionpackRubyGems |
3.2.0 up to 3.2.4 | 3.2.4 |
actionpackRubyGems |
3.0.0.beta up to 3.0.13 | 3.0.13 |
actionpackRubyGems |
before 2.3.16 | 2.3.16 |
actionpackRubyGems |
3.0.0.beta up to 3.0.13, plus listed versions 3.0.03.0.0.beta23.0.0.beta33.0.0.beta43.0.0.rc Show 29 moreShow less3.0.0.rc23.0.13.0.103.0.10.rc13.0.113.0.123.0.12.rc13.0.13.rc13.0.23.0.33.0.43.0.4.rc13.0.53.0.5.rc13.0.63.0.6.rc13.0.6.rc23.0.73.0.7.rc13.0.7.rc23.0.83.0.8.rc13.0.8.rc23.0.8.rc43.0.93.0.9.rc13.0.9.rc33.0.9.rc43.0.9.rc5 |
3.0.13 |
actionpackRubyGems |
3.1.0 up to 3.1.5, plus listed versions 3.1.13.1.1.rc13.1.1.rc23.1.1.rc33.1.2 Show 6 moreShow less3.1.2.rc13.1.2.rc23.1.33.1.43.1.4.rc13.1.5.rc1 |
3.1.5 |
actionpackRubyGems |
3.2.0 up to 3.2.4, plus listed versions 3.2.13.2.23.2.2.rc13.2.33.2.3.rc13.2.3.rc23.2.4.rc1 |
3.2.4 |
actionpackRubyGems |
before 2.3.16, plus listed versions 0.9.00.9.51.0.01.0.11.1.0 Show 45 moreShow less1.10.11.10.21.11.01.11.11.11.21.12.01.12.11.12.21.12.31.12.41.12.51.13.01.13.11.13.21.13.31.13.41.13.51.13.61.2.01.3.01.3.11.4.01.5.01.5.11.6.01.7.01.8.01.8.11.9.01.9.12.0.02.0.12.0.22.0.42.0.52.1.02.1.12.1.22.2.22.2.32.3.102.3.112.3.122.3.142.3.15 |
2.3.16 |
graphvizRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:2.26.0-10.el6 | 0:2.26.0-10.el6 |
graphviz-debuginfoRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:2.26.0-10.el6 | 0:2.26.0-10.el6 |
Show 67 moreShow less
| Package | Affected | Fixed |
|---|---|---|
graphviz-develRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:2.26.0-10.el6 | 0:2.26.0-10.el6 |
graphviz-docRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:2.26.0-10.el6 | 0:2.26.0-10.el6 |
graphviz-gdRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:2.26.0-10.el6 | 0:2.26.0-10.el6 |
graphviz-rubyRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:2.26.0-10.el6 | 0:2.26.0-10.el6 |
openshift-consoleRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:0.0.16-1.el6op | 0:0.0.16-1.el6op |
openshift-origin-brokerRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.11-1.el6op | 0:1.0.11-1.el6op |
openshift-origin-broker-utilRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.15-1.el6op | 0:1.0.15-1.el6op |
ruby193-rubyRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.9.3.327-25.el6 | 0:1.9.3.327-25.el6 |
ruby193-ruby-debuginfoRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.9.3.327-25.el6 | 0:1.9.3.327-25.el6 |
ruby193-ruby-develRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.9.3.327-25.el6 | 0:1.9.3.327-25.el6 |
ruby193-ruby-docRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.9.3.327-25.el6 | 0:1.9.3.327-25.el6 |
ruby193-ruby-irbRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.9.3.327-25.el6 | 0:1.9.3.327-25.el6 |
ruby193-ruby-libsRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.9.3.327-25.el6 | 0:1.9.3.327-25.el6 |
ruby193-ruby-tcltkRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.9.3.327-25.el6 | 0:1.9.3.327-25.el6 |
ruby193-rubygem-actionpackRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 1:3.2.8-3.el6 | 1:3.2.8-3.el6 |
ruby193-rubygem-actionpack-docRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 1:3.2.8-3.el6 | 1:3.2.8-3.el6 |
ruby193-rubygem-activemodelRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:3.2.8-2.el6 | 0:3.2.8-2.el6 |
ruby193-rubygem-activemodel-docRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:3.2.8-2.el6 | 0:3.2.8-2.el6 |
ruby193-rubygem-activerecordRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 1:3.2.8-3.el6 | 1:3.2.8-3.el6 |
ruby193-rubygem-activerecord-docRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 1:3.2.8-3.el6 | 1:3.2.8-3.el6 |
ruby193-rubygem-bigdecimalRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.1.0-25.el6 | 0:1.1.0-25.el6 |
ruby193-rubygem-io-consoleRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:0.3-25.el6 | 0:0.3-25.el6 |
ruby193-rubygem-jsonRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.5.4-25.el6 | 0:1.5.4-25.el6 |
ruby193-rubygem-minitestRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:2.5.1-25.el6 | 0:2.5.1-25.el6 |
ruby193-rubygem-railtiesRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:3.2.8-2.el6 | 0:3.2.8-2.el6 |
ruby193-rubygem-railties-docRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:3.2.8-2.el6 | 0:3.2.8-2.el6 |
ruby193-rubygem-rakeRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:0.9.2.2-25.el6 | 0:0.9.2.2-25.el6 |
ruby193-rubygem-rdocRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:3.9.4-25.el6 | 0:3.9.4-25.el6 |
ruby193-rubygem-ruby_parserRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:2.3.1-3.el6op | 0:2.3.1-3.el6op |
ruby193-rubygem-ruby_parser-docRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:2.3.1-3.el6op | 0:2.3.1-3.el6op |
ruby193-rubygemsRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.8.23-25.el6 | 0:1.8.23-25.el6 |
ruby193-rubygems-develRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.8.23-25.el6 | 0:1.8.23-25.el6 |
rubygem-actionpackRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 1:3.0.13-4.el6op | 1:3.0.13-4.el6op |
rubygem-activemodelRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:3.0.13-3.el6op | 0:3.0.13-3.el6op |
rubygem-activemodel-docRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:3.0.13-3.el6op | 0:3.0.13-3.el6op |
rubygem-activerecordRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 1:3.0.13-5.el6op | 1:3.0.13-5.el6op |
rubygem-bsonRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.8.1-2.el6op | 0:1.8.1-2.el6op |
rubygem-mongoRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.8.1-2.el6op | 0:1.8.1-2.el6op |
rubygem-mongo-docRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.8.1-2.el6op | 0:1.8.1-2.el6op |
rubygem-openshift-origin-auth-remote-userRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.5-1.el6op | 0:1.0.5-1.el6op |
rubygem-openshift-origin-consoleRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.10-1.el6op | 0:1.0.10-1.el6op |
rubygem-openshift-origin-console-docRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.10-1.el6op | 0:1.0.10-1.el6op |
rubygem-openshift-origin-controllerRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.12-1.el6op | 0:1.0.12-1.el6op |
rubygem-ruby_parserRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:2.0.4-6.el6op | 0:2.0.4-6.el6op |
rubygem-ruby_parser-docRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:2.0.4-6.el6op | 0:2.0.4-6.el6op |
openshift-origin-cartridge-jbosseap-6.0Red Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.4-1.el6op | 0:1.0.4-1.el6op |
openshift-origin-cartridge-cron-1.4Red Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.3-1.el6op | 0:1.0.3-1.el6op |
openshift-origin-cartridge-diy-0.1Red Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.3-1.el6op | 0:1.0.3-1.el6op |
openshift-origin-cartridge-haproxy-1.4Red Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.4-1.el6op | 0:1.0.4-1.el6op |
openshift-origin-cartridge-jbossews-1.0Red Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.13-1.el6op | 0:1.0.13-1.el6op |
openshift-origin-cartridge-jenkins-1.4Red Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.2-1.el6op | 0:1.0.2-1.el6op |
openshift-origin-cartridge-jenkins-client-1.4Red Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.2-1.el6op | 0:1.0.2-1.el6op |
openshift-origin-cartridge-mysql-5.1Red Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.5-1.el6op | 0:1.0.5-1.el6op |
openshift-origin-cartridge-perl-5.10Red Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.3-1.el6op | 0:1.0.3-1.el6op |
openshift-origin-cartridge-php-5.3Red Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.5-1.el6op | 0:1.0.5-1.el6op |
openshift-origin-cartridge-postgresql-8.4Red Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.3-2.el6op | 0:1.0.3-2.el6op |
openshift-origin-cartridge-ruby-1.8Red Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.7-1.el6op | 0:1.0.7-1.el6op |
openshift-origin-cartridge-ruby-1.9-sclRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.8-1.el6op | 0:1.0.8-1.el6op |
openshift-origin-msg-node-mcollectiveRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.3-1.el6op | 0:1.0.3-1.el6op |
phpRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:5.3.3-22.el6 | 0:5.3.3-22.el6 |
php-bcmathRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:5.3.3-22.el6 | 0:5.3.3-22.el6 |
php-debuginfoRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:5.3.3-22.el6 | 0:5.3.3-22.el6 |
php-develRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:5.3.3-22.el6 | 0:5.3.3-22.el6 |
php-imapRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:5.3.3-22.el6 | 0:5.3.3-22.el6 |
php-mbstringRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:5.3.3-22.el6 | 0:5.3.3-22.el6 |
php-processRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:5.3.3-22.el6 | 0:5.3.3-22.el6 |
rubygem-openshift-origin-nodeRed Hat:openshift:1::el6 From an advisory covering 15 CVEs |
before 0:1.0.11-1.el6op | 0:1.0.11-1.el6op |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2012-2660 is a medium vulnerability (CVSS 6.4) in Rubyonrails Rails, published June 22, 2012. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 4.55%, the 91st percentile. Fixed in actionpack 3.1.5.
References
lists.opensuse.org/opensuse-security-announce/2012-08/msg00017.html
lists.opensuse.org/opensuse-security-announce/2012-08/msg00014.html
lists.opensuse.org/opensuse-security-announce/2012-08/msg00002.html
lists.opensuse.org/opensuse-security-announce/2012-08/msg00016.html
lists.opensuse.org/opensuse-updates/2012-08/msg00046.html
groups.google.com/group/rubyonrails-security/msg/d890f8d58b5fbf32?dmode=source&output=gplain
Show 83 moreShow less
rhn.redhat.com/errata/RHSA-2013-0154.html
nvd.nist.gov/vuln/detail/CVE-2012-2660
github.com/rubysec/ruby-advisory-db/blob/master/gems/actionpack/CVE-2012-2660.yml
github.com/rubysec/ruby-advisory-db/blob/master/gems/activerecord/CVE-2012-2660.yml
groups.google.com/g/rubyonrails-security/c/8SA-M3as7A8/m/Mr9fi9X4kNgJ
github.com/rails/rails/commit/61eed87ce32caf534bf1f52dd8134097b4ad9e1b
github.com/advisories/GHSA-hgpp-pp89-4fgf
github.com/rails/rails
access.redhat.com/errata/RHSA-2013:0582
access.redhat.com/security/updates/classification
access.redhat.com/knowledge/docs
bugzilla.redhat.com/show_bug.cgi?id=827353
bugzilla.redhat.com/show_bug.cgi?id=827363
bugzilla.redhat.com/show_bug.cgi?id=831573
bugzilla.redhat.com/show_bug.cgi?id=831581
bugzilla.redhat.com/show_bug.cgi?id=843711
bugzilla.redhat.com/show_bug.cgi?id=847196
bugzilla.redhat.com/show_bug.cgi?id=847199
bugzilla.redhat.com/show_bug.cgi?id=847200
bugzilla.redhat.com/show_bug.cgi?id=862598
bugzilla.redhat.com/show_bug.cgi?id=862614
bugzilla.redhat.com/show_bug.cgi?id=865940
bugzilla.redhat.com/show_bug.cgi?id=875236
bugzilla.redhat.com/show_bug.cgi?id=887353
bugzilla.redhat.com/show_bug.cgi?id=889426
bugzilla.redhat.com/show_bug.cgi?id=892806
bugzilla.redhat.com/show_bug.cgi?id=892866
bugzilla.redhat.com/show_bug.cgi?id=895347
bugzilla.redhat.com/show_bug.cgi?id=895355
bugzilla.redhat.com/show_bug.cgi?id=902412
bugzilla.redhat.com/show_bug.cgi?id=902630
bugzilla.redhat.com/show_bug.cgi?id=903526
bugzilla.redhat.com/show_bug.cgi?id=903546
bugzilla.redhat.com/show_bug.cgi?id=905021
bugzilla.redhat.com/show_bug.cgi?id=905656
bugzilla.redhat.com/show_bug.cgi?id=906227
bugzilla.redhat.com/show_bug.cgi?id=906845
security.access.redhat.com/data/csaf/v2/advisories/2013/rhsa-2013_0582.json
access.redhat.com/security/cve/CVE-2012-2660
cve.org/CVERecord?id=CVE-2012-2660
access.redhat.com/security/cve/CVE-2012-2661
cve.org/CVERecord?id=CVE-2012-2661
nvd.nist.gov/vuln/detail/CVE-2012-2661
access.redhat.com/security/cve/CVE-2012-2694
cve.org/CVERecord?id=CVE-2012-2694
nvd.nist.gov/vuln/detail/CVE-2012-2694
access.redhat.com/security/cve/CVE-2012-2695
cve.org/CVERecord?id=CVE-2012-2695
nvd.nist.gov/vuln/detail/CVE-2012-2695
access.redhat.com/security/cve/CVE-2012-3424
cve.org/CVERecord?id=CVE-2012-3424
nvd.nist.gov/vuln/detail/CVE-2012-3424
access.redhat.com/security/cve/CVE-2012-3463
cve.org/CVERecord?id=CVE-2012-3463
nvd.nist.gov/vuln/detail/CVE-2012-3463
access.redhat.com/security/cve/CVE-2012-3464
cve.org/CVERecord?id=CVE-2012-3464
nvd.nist.gov/vuln/detail/CVE-2012-3464
access.redhat.com/security/cve/CVE-2012-3465
cve.org/CVERecord?id=CVE-2012-3465
nvd.nist.gov/vuln/detail/CVE-2012-3465
access.redhat.com/security/cve/CVE-2012-4464
cve.org/CVERecord?id=CVE-2012-4464
nvd.nist.gov/vuln/detail/CVE-2012-4464
access.redhat.com/security/cve/CVE-2012-4466
cve.org/CVERecord?id=CVE-2012-4466
nvd.nist.gov/vuln/detail/CVE-2012-4466
access.redhat.com/security/cve/CVE-2012-4522
cve.org/CVERecord?id=CVE-2012-4522
nvd.nist.gov/vuln/detail/CVE-2012-4522
access.redhat.com/security/cve/CVE-2012-5371
cve.org/CVERecord?id=CVE-2012-5371
nvd.nist.gov/vuln/detail/CVE-2012-5371
access.redhat.com/security/cve/CVE-2013-0155
cve.org/CVERecord?id=CVE-2013-0155
nvd.nist.gov/vuln/detail/CVE-2013-0155
access.redhat.com/security/cve/CVE-2013-0162
cve.org/CVERecord?id=CVE-2013-0162
nvd.nist.gov/vuln/detail/CVE-2013-0162
access.redhat.com/security/cve/CVE-2013-0276
bugzilla.redhat.com/show_bug.cgi?id=909528
cve.org/CVERecord?id=CVE-2013-0276
nvd.nist.gov/vuln/detail/CVE-2013-0276
Left out here: 10 versions. The JSON record has them.