The credits section was missing a name in the previous announcement, so
please see the credits section here. Thanks!
Arbitrary file existence disclosure in Action Pack
There is an information leak vulnerability in Action Pack. This vulnerability
has been assigned the CVE identifier CVE-2014-7829.
Versions Affected: >= 3.0.0
Not affected: < 3.0.0, 4.2.0.beta4
Fixed Versions: 3.2.21, 4.0.12, 4.1.8
Specially crafted requests can be used to determine whether a file exists on
the filesystem that is outside the Rails application's root directory. The
files will not be served, but attackers can determine whether or not the file
exists. This vulnerability is very similar to CVE-2014-7818, but the
specially crafted string is slightly different.
This only impacts Rails applications that enable static file serving at
runtime. For example, the application's production configuration will say:
config.serve_static_assets = true
All users running an affected configuration should either upgrade or use one of the work arounds immediately.
The 3.2.21, 4.0.12 & 4.1.8 releases are available at the normal locations.
To work around this issue, set config.serve_static_assets = false in an initializer. This work around will not be possible in all hosting environments and upgrading is advised.
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-1-sec-static-files.patch - Patch for the 3.1.x release series
* 3-2-sec-static-files.patch - Patch for the 3.2.x release series
* 4-0-sec-static-files.patch - Patch for the 4.0.x release series
* 4-1-sec-static-files.patch - Patch for the 4.1.x release series
Please note that only the 3.2.x, 4.0.x & 4.1.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.
This vulnerability was reported by multiple researchers working independently. Thanks to each of them for reporting the issue to us and verifying the fixes.
* Behrouz Sadeghipour
* Patrick Toomey of GitHub
* Remon Oldenbeuving of hackerone