The Ruby on Rails project reports: Vulnerability in JSON Parser in Ruby on Rails 3.0 and 2.3 There is a vulnerability in the JSON code for Ruby on Rails which allows attackers to bypass authentication systems, inject arbitrary SQL, inject and execute arbitrary code, or perform a DoS attack on a Rails application. This vulnerability has been assigned the CVE identifier CVE-2013-0333. Versions Affected: 2.3.x, 3.0.x Not Affected: 3.1.x, 3.2.x Fixed Versions: 3.0.20, 2.3.16 Impact ------ The JSON Parsing code in Rails 2.3 and 3.0 support multiple parsing backends. One of the backends involves transforming the JSON into YAML, and passing that through the YAML parser. Using a specially crafted payload attackers can trick the backend into decoding a subset of YAML. Note: This is a seperate vulnerability to CVE-2013-0156, if you are running a 2.3 or 3.0 application you must still take action to protect your application. Releases -------- The 3.0.20 and 2.3.16 releases are available at the normal locations. Workarounds ----------- To work around this vulnerability you need to switch backends to the JsonGem backend. Place this code in an application initializer: ActiveSupport::JSON.backend = "JSONGem" If you are running Ruby 1.8 you will need to ensure that the json or json_pure gems are installed and in your application's Gemfile. Ruby 1.9 includes this code already. 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. * 2-3-json-parser.patch - Patch for 2.3 series * 3-0-json-parser.patch - Patch for 3.0 series Please note that only the 2.3.x, 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. Credits ------- Thanks to Lawrence Pit of Mirror42 for discovering the vulnerability and working responsibly with us to ensure we shipped a fix.
Created attachment 686419 [details] ror-2-3-json-parser-CVE-2013-0333.patch
Created attachment 686420 [details] ror-3-0-json-parser-CVE-2013-0333.patch
Acknowledgements: Red Hat would like to thank Ruby on Rails upstream for reporting this issue. Upstream acknowledges Lawrence Pit of Mirror42 as the original reporter.
Created attachment 688771 [details] Updated patch (for 3.0 version) from upstream to fix this issue (see previous comment)
Created attachment 688784 [details] For easier reading diff the diffs (to see what got changed)
Fast check against scratch build (https://brewweb.devel.redhat.com/taskinfo?taskID=5326330) with new patch from upstream looks ok.
External References: http://weblog.rubyonrails.org/2013/1/28/Rails-3-0-20-and-2-3-16-have-been-released/
This issue has been addressed in following products: RHEL 6 Version of OpenShift Enterprise Via RHSA-2013:0202 https://rhn.redhat.com/errata/RHSA-2013-0202.html
This issue has been addressed in following products: Red Hat Subscription Asset Manager 1.1 Via RHSA-2013:0201 https://rhn.redhat.com/errata/RHSA-2013-0201.html
This issue has been addressed in following products: CloudForms for RHEL 6 Via RHSA-2013:0203 https://rhn.redhat.com/errata/RHSA-2013-0203.html
Can we get tracking bug for F16/F17? Thank you.
Created rubygem-activesupport tracking bugs for this issue Affects: epel-5 [bug 905373] Affects: epel-6 [bug 905374] Affects: fedora-16 [bug 905375] Affects: fedora-17 [bug 905376]
External References: https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/1h2DR63ViGo
rubygem-activesupport-3.0.10-6.fc16 has been pushed to the Fedora 16 stable repository. If problems still persist, please make note of it in this bug report.
rubygem-activesupport-3.0.11-8.fc17 has been pushed to the Fedora 17 stable repository. If problems still persist, please make note of it in this bug report.
The EPEL 6 version is 2.3.8-2 so I'm guessing that's still affected. The EPEL 5 version is 2.1.1-2 so I'm not clear that that version is affected by this vulnerability.