oss-sec mailing list archives

Potential XSS Vulnerability in Ruby on Rails


From: Santiago Pastorino <santiago () wyeworks com>
Date: Thu, 9 Aug 2012 18:24:57 -0300

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.escape_html 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-escape_html.patch - Patch for 3.0 series
* 3-1-escape_html.patch - Patch for 3.1 series
* 3-2-escape_html.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.

---

Santiago Pastorino
WyeWorks Co-founder
http://www.wyeworks.com

Twitter: http://twitter.com/spastorino
Github: http://github.com/spastorino

Attachment: single_quote_escape_workaround.rb
Description:

Attachment: 3-2-escape_html.patch
Description:

Attachment: 3-1-escape_html.patch
Description:

Attachment: 3-0-escape_html.patch
Description:


Current thread: