oss-sec mailing list archives
[CVE-2018-16471] Possible XSS vulnerability in Rack
From: Aaron Patterson <tenderlove () ruby-lang org>
Date: Mon, 5 Nov 2018 12:08:54 -0800
There is a possible vulnerability in Rack. This vulnerability has been assigned the CVE identifier CVE-2018-16471. Versions Affected: All. Not affected: None. Fixed Versions: 2.0.6, 1.6.11 Impact ------ There is a possible XSS vulnerability in Rack. Carefully crafted requests can impact the data returned by the `scheme` method on `Rack::Request`. Applications that expect the scheme to be limited to "http" or "https" and do not escape the return value could be vulnerable to an XSS attack. Vulnerable code looks something like this: ``` <%= request.scheme.html_safe %> ``` Note that applications using the normal escaping mechanisms provided by Rails may not impacted, but applications that bypass the escaping mechanisms, or do not use them may be vulnerable. All users running an affected release should either upgrade or use one of the workarounds immediately. Releases -------- The 2.0.6 and 1.6.11 releases are available at the normal locations. Workarounds ----------- The following monkey patch can be applied to work around this issue: ``` require "rack" require "rack/request" class Rack::Request SCHEME_WHITELIST = %w(https http).freeze def scheme if get_header(Rack::HTTPS) == 'on' 'https' elsif get_header(HTTP_X_FORWARDED_SSL) == 'on' 'https' elsif forwarded_scheme forwarded_scheme else get_header(Rack::RACK_URL_SCHEME) end end def forwarded_scheme scheme_headers = [ get_header(HTTP_X_FORWARDED_SCHEME), get_header(HTTP_X_FORWARDED_PROTO).to_s.split(',')[0] ] scheme_headers.each do |header| return header if SCHEME_WHITELIST.include?(header) end nil end end ``` Patches ------- To aid users who aren't able to upgrade immediately we have provided patches for the supported release series. They are in git-am format and consist of a single changeset. * 2-0-scheme-xss.patch - Patch for 2.0 series * 1-6-scheme-xss.patch - Patch for 1.6 series Please note that only the 1.6.x and 2.0.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 ------- * Patrick Tulskie <patricktulskie () gmail com> Thank you! -- Aaron Patterson http://tenderlovemaking.com/
Attachment:
1-6-scheme-xss.patch
Description:
Attachment:
2-0-scheme-xss.patch
Description:
Attachment:
signature.asc
Description:
Current thread:
- [CVE-2018-16471] Possible XSS vulnerability in Rack Aaron Patterson (Nov 05)