CVE-2018-8780: Path Traversal

Published Mar 29, 2018
·
Updated

Dir.open, Dir.new, Dir.entries and Dir.empty? accept the path of the target directory as their parameter. If the parameter contains NUL (\0) bytes, these methods recognize that the path is completed before the NUL bytes. So, if a script accepts an external input as the argument of these methods, the attacker can make the unintentional directory traversal.

Affected versions:

Ruby 2.2 series: 2.2.9 and earlier Ruby 2.3 series: 2.3.6 and earlier Ruby 2.4 series: 2.4.3 and earlier Ruby 2.5 series: 2.5.0 and earlier

External References:

https://www.ruby-lang.org/en/news/2018/03/28/poisoned-nul-byte-dir-cve-2018-8780/

Other sources

In Ruby before 2.2.10, 2.3.x before 2.3.7, 2.4.x before 2.4.4, 2.5.x before 2.5.1, and 2.6.0-preview1, the Dir.open, Dir.new, Dir.entries and Dir.empty? methods do not check NULL characters. When using the corresponding method, unintentional directory traversal may be performed.

Launchpad

Ruby. Multiple issues in Ruby were addressed in this update.

Credit

CVE-2017-0898, CVE-2017-10784, CVE-2017-14033, CVE-2017-14064, CVE-2017-17405, CVE-2017-17742, CVE-2018-6914, CVE-2018-8777, CVE-2018-8778, CVE-2018-8779, CVE-2018-8780

Affected Software

24 affected componentsFixes available
redhat/ruby<2.2.10
2.2.10
redhat/ruby<2.3.7
2.3.7
redhat/ruby<2.4.4
2.4.4
redhat/ruby<2.5.1
2.5.1
debian/ruby1.8
debian/ruby1.9.1
debian/ruby2.1
debian/ruby2.5
Apple macOS Mojave<10.14.1
10.14.1
Apple High Sierra
Apple Sierra
Apple macOS High Sierra<10.13.6
10.13.6
Apple El Capitan
ruby-lang Ruby<2.2.10
ruby-lang Ruby>=2.3.0<2.3.7
ruby-lang Ruby>=2.4.0<2.4.4
ruby-lang Ruby>=2.5.0<2.5.1
ruby-lang Ruby=2.6.0-preview1
Canonical Ubuntu Linux=14.04
Canonical Ubuntu Linux=16.04
Canonical Ubuntu Linux=17.10
Debian Debian Linux=7.0
Debian Debian Linux=8.0
Debian Debian Linux=9.0

Event History

Apr 3, 2018
CVE Published
via MITRE·10:00 PM
Data Sourced
via MITRE·10:00 PM
Description
Data Sourced
via NVD·10:29 PM
RemedyDescriptionSeverityWeaknessAffected Software
Jan 11, 2024
Data Sourced
via Launchpad·11:10 PM
Description
Feb 20, 2026
Data Sourced
via Ubuntu·08:44 PM
RemedyDescriptionSeverityAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is CVE-2018-8780?

CVE-2018-8780 is a vulnerability in Ruby that allows for unintended directory traversal.

2

What is the severity of CVE-2018-8780?

The severity of CVE-2018-8780 is critical with a CVSS score of 9.1.

3

Which versions of Ruby are affected by CVE-2018-8780?

Versions before 2.2.10, 2.3.x before 2.3.7, 2.4.x before 2.4.4, 2.5.x before 2.5.1, and 2.6.0-preview1 are affected by CVE-2018-8780.

4

How can I fix CVE-2018-8780?

To fix CVE-2018-8780, update Ruby to version 2.2.10, 2.3.7, 2.4.4, 2.5.1, or 2.6.0-preview1.

5

Where can I find more information about CVE-2018-8780?

You can find more information about CVE-2018-8780 at the following references: [Link 1](https://www.ruby-lang.org/en/news/2018/03/28/poisoned-nul-byte-dir-cve-2018-8780/), [Link 2](https://bugzilla.redhat.com/show_bug.cgi/show_bug.cgi?id=1561957), [Link 3](https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=62989).

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203