{"schema_version":"1.9.0","id":"CVE-2016-2097","published":"2016-04-07T23:59:05.800Z","modified":"2026-09-09T03:30:55.669867670Z","aliases":["GHSA-vx9j-46rh-fqr8"],"related":["SUSE-SU-2016:0854-1","SUSE-SU-2016:0967-1","SUSE-SU-2022:15116-1"],"details":"Directory traversal vulnerability in Action View in Ruby on Rails before 3.2.22.2 and 4.x before 4.1.14.2 allows remote attackers to read arbitrary files by leveraging an application's unrestricted use of the render method and providing a .. (dot dot) in a pathname.  NOTE: this vulnerability exists because of an incomplete fix for CVE-2016-0752.","affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/rails/rails","events":[{"introduced":"375d9a0a7fb329b0fbbd75a13e93e53a00520587"},{"last_affected":"96c4b1a1311b0f9e099db2819f08a2277377c552"}],"database_specific":{"cpe":["cpe:2.3:a:rubyonrails:rails:4.0.0:-:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.0:beta:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.0:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.0:rc2:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.1:-:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.1:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.1:rc2:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.1:rc3:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.1:rc4:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.2:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.3:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.4:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.4:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.5:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.6:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.6:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.6:rc2:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.6:rc3:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.7:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.8:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.9:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.0.10:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.0:-:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.0:beta1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.0:beta2:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.0:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.0:rc2:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.1:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.2:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.2:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.2:rc2:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.2:rc3:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.3:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.4:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.5:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.6:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.6:rc2:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.7:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.7.1:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.8:*:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.9:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.10:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.10:rc2:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.10:rc3:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.10:rc4:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.12:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.13:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.14:rc1:*:*:*:*:*:*","cpe:2.3:a:rubyonrails:rails:4.1.14:rc2:*:*:*:*:*:*"],"extracted_events":[{"introduced":"4.0.0-NA"},{"last_affected":"4.0.0-NA"},{"introduced":"4.0.0-beta"},{"last_affected":"4.0.0-beta"},{"introduced":"4.0.0-rc1"},{"last_affected":"4.0.0-rc1"},{"introduced":"4.0.0-rc2"},{"last_affected":"4.0.0-rc2"},{"introduced":"4.0.1-NA"},{"last_affected":"4.0.1-NA"},{"introduced":"4.0.1-rc1"},{"last_affected":"4.0.1-rc1"},{"introduced":"4.0.1-rc2"},{"last_affected":"4.0.1-rc2"},{"introduced":"4.0.1-rc3"},{"last_affected":"4.0.1-rc3"},{"introduced":"4.0.1-rc4"},{"last_affected":"4.0.1-rc4"},{"introduced":"4.0.2"},{"last_affected":"4.0.2"},{"introduced":"4.0.3"},{"last_affected":"4.0.3"},{"introduced":"4.0.4"},{"last_affected":"4.0.4"},{"introduced":"4.0.4-rc1"},{"last_affected":"4.0.4-rc1"},{"introduced":"4.0.5"},{"last_affected":"4.0.5"},{"introduced":"4.0.6"},{"last_affected":"4.0.6"},{"introduced":"4.0.6-rc1"},{"last_affected":"4.0.6-rc1"},{"introduced":"4.0.6-rc2"},{"last_affected":"4.0.6-rc2"},{"introduced":"4.0.6-rc3"},{"last_affected":"4.0.6-rc3"},{"introduced":"4.0.7"},{"last_affected":"4.0.7"},{"introduced":"4.0.8"},{"last_affected":"4.0.8"},{"introduced":"4.0.9"},{"last_affected":"4.0.9"},{"introduced":"4.0.10-rc1"},{"last_affected":"4.0.10-rc1"},{"introduced":"4.1.0-NA"},{"last_affected":"4.1.0-NA"},{"introduced":"4.1.0-beta1"},{"last_affected":"4.1.0-beta1"},{"introduced":"4.1.0-beta2"},{"last_affected":"4.1.0-beta2"},{"introduced":"4.1.0-rc1"},{"last_affected":"4.1.0-rc1"},{"introduced":"4.1.0-rc2"},{"last_affected":"4.1.0-rc2"},{"introduced":"4.1.1"},{"last_affected":"4.1.1"},{"introduced":"4.1.2"},{"last_affected":"4.1.2"},{"introduced":"4.1.2-rc1"},{"last_affected":"4.1.2-rc1"},{"introduced":"4.1.2-rc2"},{"last_affected":"4.1.2-rc2"},{"introduced":"4.1.2-rc3"},{"last_affected":"4.1.2-rc3"},{"introduced":"4.1.3"},{"last_affected":"4.1.3"},{"introduced":"4.1.4"},{"last_affected":"4.1.4"},{"introduced":"4.1.5"},{"last_affected":"4.1.5"},{"introduced":"4.1.6-rc1"},{"last_affected":"4.1.6-rc1"},{"introduced":"4.1.6-rc2"},{"last_affected":"4.1.6-rc2"},{"introduced":"4.1.7"},{"last_affected":"4.1.7"},{"introduced":"4.1.7.1"},{"last_affected":"4.1.7.1"},{"introduced":"4.1.8"},{"last_affected":"4.1.8"},{"introduced":"4.1.9-rc1"},{"last_affected":"4.1.9-rc1"},{"introduced":"4.1.10-rc1"},{"last_affected":"4.1.10-rc1"},{"introduced":"4.1.10-rc2"},{"last_affected":"4.1.10-rc2"},{"introduced":"4.1.10-rc3"},{"last_affected":"4.1.10-rc3"},{"introduced":"4.1.10-rc4"},{"last_affected":"4.1.10-rc4"},{"introduced":"4.1.12-rc1"},{"last_affected":"4.1.12-rc1"},{"introduced":"4.1.13-rc1"},{"last_affected":"4.1.13-rc1"},{"introduced":"4.1.14-rc1"},{"last_affected":"4.1.14-rc1"},{"introduced":"4.1.14-rc2"},{"last_affected":"4.1.14-rc2"}],"source":"CPE_STRING"}}],"versions":["4.0.0-NA","4.0.0-beta","4.0.0-rc1","4.0.0-rc2","4.0.1-NA","4.0.1-rc1","4.0.1-rc2","4.0.1-rc3","4.0.1-rc4","4.0.10-rc1","4.0.2","4.0.3","4.0.4","4.0.4-rc1","4.0.5","4.0.6","4.0.6-rc1","4.0.6-rc2","4.0.6-rc3","4.0.7","4.0.8","4.0.9","4.1.0-NA","4.1.0-beta1","4.1.0-beta2","4.1.0-rc1","4.1.0-rc2","4.1.1","4.1.10-rc1","4.1.10-rc2","4.1.10-rc3","4.1.10-rc4","4.1.12-rc1","4.1.13-rc1","4.1.14-rc1","4.1.14-rc2","4.1.2","4.1.2-rc1","4.1.2-rc2","4.1.2-rc3","4.1.3","4.1.4","4.1.5","4.1.6-rc1","4.1.6-rc2","4.1.7","4.1.7.1","4.1.8","4.1.9-rc1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2016-2097.json"}}],"references":[{"type":"WEB","url":"http://lists.opensuse.org/opensuse-security-announce/2016-03/msg00080.html"},{"type":"WEB","url":"http://lists.opensuse.org/opensuse-security-announce/2016-03/msg00083.html"},{"type":"WEB","url":"http://lists.opensuse.org/opensuse-security-announce/2016-04/msg00006.html"},{"type":"WEB","url":"http://www.securityfocus.com/bid/83726"},{"type":"WEB","url":"http://www.securitytracker.com/id/1035122"},{"type":"WEB","url":"https://groups.google.com/forum/message/raw?msg=rubyonrails-security/ddY6HgqB2z4/we0RasMZIAAJ"},{"type":"ADVISORY","url":"http://www.debian.org/security/2016/dsa-3509"},{"type":"FIX","url":"http://weblog.rubyonrails.org/2016/2/29/Rails-4-2-5-2-4-1-14-2-3-2-22-2-have-been-released/"}],"database_specific":{"unresolved_ranges":[{"cpes":["cpe:2.3:a:rubyonrails:ruby_on_rails:*:*:*:*:*:*:*:*"],"extracted_events":[{"last_affected":"3.2.22.1"}],"source":"CPE_RANGE","vendor_product":"rubyonrails:ruby_on_rails"},{"cpes":["cpe:2.3:a:rubyonrails:ruby_on_rails:4.1.14.1:*:*:*:*:*:*:*"],"extracted_events":[{"introduced":"4.1.14.1"},{"last_affected":"4.1.14.1"}],"source":"CPE_STRING","vendor_product":"rubyonrails:ruby_on_rails"}]},"severity":[{"type":"CVSS_V3","score":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N"}]}