CVE-2012-3464: XSS

Published Aug 10, 2012
·
Updated

Cross-site scripting (XSS) vulnerability in activesupport/lib/activesupport/coreext/string/outputsafety.rb in Ruby on Rails before 2.3.16, 3.0.x before , 3.1.x before 3.1.8, and 3.2.x before 3.2.8 might allow remote attackers to inject arbitrary web script or HTML via vectors involving a ' (quote) character.

Other sources

Cross-site scripting (XSS) vulnerability in activesupport/lib/activesupport/coreext/string/outputsafety.rb in Ruby on Rails before 3.0.17, 3.1.x before 3.1.8, and 3.2.x before 3.2.8 might allow remote attackers to inject arbitrary web script or HTML via vectors involving a ' (quote) character.

NVD

The Ruby on Rails project reports:

There is a vulnerability in the HTML escaping code in Ruby on Rails. This vulnerability has been assigned the CVE identifier CVE-2012-3464.

Versions Affected: All. Not affected: None Fixed Versions: 3.2.8, 3.1.8, 3.0.17

Impact - ------ The HTML escaping code in Ruby on Rails does not escape all potentially dangerous characters. In particular the code does not escape the single quote character. The helpers used in Rails itself never use single quotes, so most applications are unlikely to be vulnerable, however all users running an affected release should still upgrade.

Releases - -------- The 3.2.8 and 3.1.8 releases are available at the normal locations.

Workarounds - -----------

For users on earlier releases or who are unable to upgrade, you can install the attached file into config/initializers. This will upgrade the rails helper to use the Rack::Utils.escapehtml helper which does escape the single quote character. However the Rack helper also escapes the '/' character, this is likely to cause test failures if your application is expecting the values of URLs to be unencoded. These tests however browsers will correctly decode the values and function as expected.

Patches - ------- To aid users who aren't able to upgrade immediately we have provided patches for the two supported release series. They are in git-am format and consist of a single changeset.

3-0-escapehtml.patch - Patch for 3.0 series 3-1-escapehtml.patch - Patch for 3.1 series 3-2-escapehtml.patch - Patch for 3.2 series

Please note that only the 3.1.x and 3.2.x series are supported at present. Users of earlier unsupported releases are advised to upgrade as soon as possible as we cannot guarantee the continued availability of security fixes for unsupported releases.

References: http://weblog.rubyonrails.org/2012/8/9/ann-rails-3-2-8-has-been-released/

Affected Software

149 affected componentsFixes available
redhat/rubygem-actionpack<3.0.17
3.0.17
redhat/rubygem-actionpack<3.1.8
3.1.8
redhat/rubygem-actionpack<3.2.8
3.2.8
rubygems/activesupport<2.3.16
2.3.16
rubygems/activesupport>=3.0.0.beta<3.0.17
3.0.17
rubygems/activesupport>=3.2.0<3.2.8
3.2.8
rubygems/activesupport>=3.1.0<3.1.8
3.1.8
rubyonrails Rails=0.9.1
rubyonrails Rails=0.9.2
rubyonrails Rails=0.9.3
rubyonrails Rails=0.9.4
rubyonrails Rails=0.9.4.1
rubyonrails Rails=0.10.0
rubyonrails Rails=0.10.1
rubyonrails Rails=0.11.0
rubyonrails Rails=0.11.1
rubyonrails Rails=0.12.0
rubyonrails Rails=0.12.1
rubyonrails Rails=0.13.0
rubyonrails Rails=0.13.1
rubyonrails Rails=0.14.1
rubyonrails Rails=0.14.2
rubyonrails Rails=0.14.3
rubyonrails Rails=0.14.4
rubyonrails Rails=1.0.0
rubyonrails Rails=1.1.0
rubyonrails Rails=1.1.1
rubyonrails Rails=1.1.2
rubyonrails Rails=1.1.3
rubyonrails Rails=1.1.4
rubyonrails Rails=1.1.5
rubyonrails Rails=1.1.6
rubyonrails Rails=1.2.0
rubyonrails Rails=1.2.1
rubyonrails Rails=1.2.2
rubyonrails Rails=1.2.3
rubyonrails Rails=1.2.4
rubyonrails Rails=1.2.5
rubyonrails Rails=1.2.6
rubyonrails Rails=1.9.5
rubyonrails Rails=2.0.0
rubyonrails Rails=2.0.0-rc1
rubyonrails Rails=2.0.0-rc2
rubyonrails Rails=2.0.1
rubyonrails Rails=2.0.2
rubyonrails Rails=2.0.4
rubyonrails Rails=2.1.0
rubyonrails Rails=2.1.1
rubyonrails Rails=2.1.2
rubyonrails Rails=2.2.0
rubyonrails Rails=2.2.1
rubyonrails Rails=2.2.2
rubyonrails Rails=2.3.2
rubyonrails Rails=2.3.3
rubyonrails Rails=2.3.4
rubyonrails Rails=2.3.9
rubyonrails Rails=2.3.10
rubyonrails Rails=2.3.11
rubyonrails Rails=2.3.12
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
rubyonrails Rails=3.0.13-rc1
rubyonrails Rails=3.0.14
rubyonrails ruby on Rails<=3.0.16
rubyonrails ruby on Rails=0.5.0
rubyonrails ruby on Rails=0.5.5
rubyonrails ruby on Rails=0.5.6
rubyonrails ruby on Rails=0.5.7
rubyonrails ruby on Rails=0.6.0
rubyonrails ruby on Rails=0.6.5
rubyonrails ruby on Rails=0.7.0
rubyonrails ruby on Rails=0.8.0
rubyonrails ruby on Rails=0.8.5
rubyonrails ruby on Rails=0.9.0
rubyonrails 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.1.6
rubyonrails Rails=3.1.7
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
rubyonrails Rails=3.2.6
rubyonrails Rails=3.2.7

Event History

Aug 10, 2012
CVE Published
via MITRE·10:00 AM
Data Sourced
via MITRE·10:00 AM
Description
Oct 24, 2017
Advisory Published
via GitHub·06:33 PM
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2012-3464?

CVE-2012-3464 has been rated as a medium severity vulnerability due to its potential to allow cross-site scripting attacks.

2

How do I fix CVE-2012-3464?

To fix CVE-2012-3464, upgrade to Ruby on Rails versions 2.3.16, 3.0.17, 3.1.8, or 3.2.8 or later.

3

What vulnerability type is associated with CVE-2012-3464?

CVE-2012-3464 is associated with cross-site scripting (XSS) vulnerabilities.

4

Which Ruby on Rails versions are affected by CVE-2012-3464?

CVE-2012-3464 affects Ruby on Rails versions before 2.3.16, 3.0.x before 3.0.17, 3.1.x before 3.1.8, and 3.2.x before 3.2.8.

5

Can CVE-2012-3464 be exploited remotely?

Yes, CVE-2012-3464 can be exploited by remote attackers to inject arbitrary web scripts or HTML.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203