Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
CISA KEV·Added 2025-07-07 — agencies required to remediate by 2025-07-28
💎 RubyGems

GHSA-86g5-2wh3-gc9j

HIGH

Path Traversal in Action View

Also known asCVE-2019-5418
Published
Mar 13, 2019
Updated
Oct 22, 2025
Affected
4 pkgs
Patched
4 / 4
Exploits
19 known

EPSS Exploitation Probability

via FIRST.org ↗
94.3%probability of exploitation in next 30 days
Very High Risk100th percentile0.00%
93.8%94.2%94.5%94.8%94.3%94.3%Dec 25Apr 26Jun 26

EPSS (Exploit Prediction Scoring System) is a daily probability model maintained by FIRST.org. It estimates the likelihood a CVE will be exploited in production environments within the next 30 days, derived from real-world threat intelligence signals.

Blast Radius

4 pkgs affected
💎actionview💎actionview💎actionview💎actionview

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects RubyGems packages — download data is not available via public APIs for these ecosystems.

Description

File Content Disclosure in Action View

Impact

There is a possible file content disclosure vulnerability in Action View. Specially crafted accept headers in combination with calls to render file: can cause arbitrary files on the target server to be rendered, disclosing the file contents.

The impact is limited to calls to render which render file contents without a specified accept format. Impacted code in a controller looks something like this:

class UserController < ApplicationController 
  def index 
    render file: "#{Rails.root}/some/file" 
  end 
end 

Rendering templates as opposed to files is not impacted by this vulnerability.

All users running an affected release should either upgrade or use one of the workarounds immediately.

Releases

The 6.0.0.beta3, 5.2.2.1, 5.1.6.2, 5.0.7.2, and 4.2.11.1 releases are available at the normal locations.

Workarounds

This vulnerability can be mitigated by specifying a format for file rendering, like this:

class UserController < ApplicationController 
  def index 
    render file: "#{Rails.root}/some/file", formats: [:html] 
  end 
end 

In summary, impacted calls to render look like this:

render file: "#{Rails.root}/some/file" 

The vulnerability can be mitigated by changing to this:

render file: "#{Rails.root}/some/file", formats: [:html] 

Other calls to render are not impacted.

Alternatively, the following monkey patch can be applied in an initializer:

$ cat config/initializers/formats_filter.rb 
# frozen_string_literal: true 

ActionDispatch::Request.prepend(Module.new do 
  def formats 
    super().select do |format| 
      format.symbol || format.ref == "*/*" 
    end 
  end 
end) 

Credits

Thanks to John Hawthorn [email protected] of GitHub

Affected Packages

4 total 4 fixed
EcosystemPackageVulnerable rangeFix
💎RubyGemsactionview5.2.0&&< 5.2.2.15.2.2.1
💎RubyGemsactionview4.0.0&&< 4.2.11.14.2.11.1
💎RubyGemsactionview5.1.0&&< 5.1.6.25.1.6.2
💎RubyGemsactionview5.0.0&&< 5.0.7.25.0.7.2
Exploits & PoCs
19

Research use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.

EDB-46585webappsmultiple

Rails 5.2.1 - Arbitrary File Content Disclosure

by NotoriousRebel · Mar 21, 2019

Frequently Asked Questions

# File Content Disclosure in Action View Impact ------ There is a possible file content disclosure vulnerability in Action View. Specially crafted accept headers in combination with calls to `render file:` can cause arbitrary files on the target server to be rendered, disclosing the file contents. The impact is limited to calls to `render` which render file contents without a specified accept format. Impacted code in a controller looks something like this: ``` ruby class UserController < ApplicationController def index render file: "#{Rails.root}/some/file" end end ```
O3 Security · Impact-Aware SCA

Is GHSA-86g5-2wh3-gc9j in your stack?

O3 detects GHSA-86g5-2wh3-gc9j across RubyGems dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.