Patchfirst
CVE-2014-0130 KEVPublic exploit High · 7.5 EPSS 53.7%

Ruby on Rails Directory Traversal Vulnerability

Rails · Ruby on Rails

Summary

The flaw is a directory traversal vulnerability in the implicit-render implementation of Ruby on Rails' ActionPack component (actionpack/lib/abstract_controller/base.rb), affecting Rails versions before 3.2.18, 4.0.x before 4.0.5, and 4.1.x before 4.1.1. An unauthenticated remote attacker who sends a crafted request can read arbitrary files on the server, but only when certain route globbing configurations are enabled.

Official description · NVD

Directory traversal vulnerability in actionpack/lib/abstract_controller/base.rb in the implicit-render implementation in Ruby on Rails before 3.2.18, 4.0.x before 4.0.5, and 4.1.x before 4.1.1, when certain route globbing configurations are enabled, allows remote attackers to read arbitrary files via a crafted request.

Breakdown
68.0 / 100
Exploited
Yes, in CISA KEV
Reports
0
Tactics
2/15

How an attack unfolds

Based on mappings. Select a step to see the evidence.
  1. How attackers get in

  2. What they do

First seen exploited 8 years after disclosure. Public exploit code (PoC-in-GitHub) appeared 1 day after disclosure.

  1. Disclosedday 0
  2. Public exploit codePoC-in-GitHub+1 day
  3. First seen exploitedVulnCheck KEV evidence+8 yrs
  4. Added to CISA KEVEU database agrees+8 yrs

CISA KEV listing is when exploitation was confirmed, not necessarily the first attack.

See the family tree

8 fixes in actionpack over 2 years. The latest fix listed for actionpack is 4.2.0.beta3.

Fixes in actionpackRubyGems package, by fixed version. Earlier and later fixes in the same package, not necessarily the same bug.

  1. 3.2.17CVE-2014-008220 Feb 2014
  2. 4.0.2CVE-2013-64167 Dec 2013
  3. 4.0.2CVE-2013-64177 Dec 2013
  4. 4.0.3CVE-2014-008120 Feb 2014
  5. 4.1.1CVE-2014-01307 May 2014KEV
  6. 4.1.14.1CVE-2015-757616 Feb 2016
  7. 4.1.14.2CVE-2016-20977 Apr 2016
  8. 4.2.0.beta3CVE-2014-78188 Nov 2014Latest listed

techniques

2 , grouped by in kill-chain order, 2 cited passages 2

Initial AccessTA0001

Exploit Public-Facing Application T1190 Medium
AI mapping from the description · how it is exploited

remote unauthenticated crafted request to web app

allows remote attackers to read arbitrary files via a crafted request
From the official description (NVD) Original (opens in a new tab) ↗

CollectionTA0009

Data from Local System T1005 Medium
AI mapping from the description · primary impact

arbitrary file read from local system

allows remote attackers to read arbitrary files via a crafted request
From the official description (NVD) Original (opens in a new tab) ↗

Detection

0 rules for this CVE · 163 general rules for its techniques

Rules for this CVE

0 that reference CVE-2014-0130 directly.

CVE-specific rules are not available in this build. Search SigmaHQ ↗

Sigma rules © SigmaHQ, Detection Rule License 1.1; linked, not reproduced.

Am I affected? What do I upgrade to?

From GitHub Security Advisories and OSV

1 package in 1 ecosystem. Main package: actionpack.

RubyGemsactionpackGHSA-6x85-j5j2-27jx

Upgrade to 4.1.14.2 or later

Fixes this CVE and 2 other known vulnerabilities in this package (CVE-2016-0752, CVE-2016-2098).

Gemfilegem "actionpack", ">= 4.1.14.2"

First fixed in 4.1.1 for CVE-2014-0130.

Affected versions, by release line

If you runUpgrade to
4.1.0 up to 4.1.14.1.14.2first fix for this CVE: 4.1.1
4.0.0 up to 4.0.5

Still affected on this line by CVE-2016-0752 (fixed in 4.1.14.1, a newer line); CVE-2016-2098 (fixed in 4.1.14.2, a newer line).

4.0.5
3.0.0 up to 3.2.183.2.22.2first fix for this CVE: 3.2.18

“Up to” means the second version is the fix and is not affected.

Check your lockfile against all CVEs

What security researchers reported

Not named in any threat report yet

Also mentioned in 50 community threat pulses (AlienVault OTX)

Weaker evidence

Pulses are indicator collections that anyone can publish. A mention is not confirmation of exploitation.

References

5 links, grouped by NVD tag (4 duplicates merged)
↑ ↓ chooseEnter openEsc close