Ruby up to 2.2.9/2.3.6/2.4.3/2.5.0 Dir.open/Dir.new/Dir.entries/Dir.empty Dirempty path traversal
| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 7.6 | $0-$5k | 0.00 |
Summary
A vulnerability classified as critical was found in Ruby up to 2.2.9/2.3.6/2.4.3/2.5.0. This vulnerability affects the function Dir.open/Dir.new/Dir.entries/Dir.empty. The manipulation of the argument Dirempty as part of Null Character results in path traversal.
This vulnerability was named CVE-2018-8780. The attack may be performed from remote. There is no available exploit.
Upgrading the affected component is advised.
Details
A vulnerability classified as critical has been found in Ruby up to 2.2.9/2.3.6/2.4.3/2.5.0 (Programming Language Software). Affected is the function Dir.open/Dir.new/Dir.entries/Dir.empty. The manipulation of the argument Dirempty as part of a Null Character leads to a path traversal vulnerability. CWE is classifying the issue as CWE-22. The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory. This is going to have an impact on confidentiality, and integrity. CVE summarizes:
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.
The bug was discovered 03/28/2018. The weakness was presented 04/03/2018 (Website). The advisory is shared for download at ruby-lang.org. This vulnerability is traded as CVE-2018-8780 since 03/19/2018. The exploitability is told to be easy. It is possible to launch the attack remotely. The exploitation doesn't require any form of authentication. There are known technical details, but no exploit is available. The MITRE ATT&CK project declares the attack technique as T1006.
The vulnerability was handled as a non-public zero-day exploit for at least 6 days. During that time the estimated underground price was around $0-$5k. The vulnerability scanner Nessus provides a plugin with the ID 109284 (Debian DLA-1359-1 : ruby1.8 security update), which helps to determine the existence of the flaw in a target environment. It is assigned to the family Debian Local Security Checks and running in the context l. The commercial vulnerability scanner Qualys is able to test this issue with plugin 237072 (Red Hat Update for rh-ruby25-ruby (RHSA-2018:3731)).
Upgrading to version 2.2.10, 2.3.7, 2.4.4, 2.5.1 or 2.6.0-preview1 eliminates this vulnerability. A possible mitigation has been published 3 weeks after the disclosure of the vulnerability.
The vulnerability is also documented in the databases at Tenable (109284), SecurityFocus (BID 103739†) and CERT Bund (WID-SEC-2023-1111). See VDB-114428, VDB-114429, VDB-114430 and VDB-114431 for similar entries. Once again VulDB remains the best source for vulnerability data.
Affected
- Debian Linux
- Amazon Linux 2
- Red Hat Enterprise Linux
- Ubuntu Linux
- SUSE Linux
- Oracle Linux
- Open Source Ruby
- Open Source Arch Linux
Product
Type
Name
Version
- 2.0
- 2.1
- 2.2
- 2.2.0
- 2.2.1
- 2.2.2
- 2.2.3
- 2.2.4
- 2.2.5
- 2.2.6
- 2.2.7
- 2.2.8
- 2.2.9
- 2.3
- 2.3.0
- 2.3.1
- 2.3.2
- 2.3.3
- 2.3.4
- 2.3.5
- 2.3.6
- 2.4
- 2.4.0
- 2.4.1
- 2.4.2
- 2.4.3
- 2.5.0
License
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 7.8VulDB Meta Temp Score: 7.6
VulDB Base Score: 6.5
VulDB Temp Score: 6.2
VulDB Vector: 🔍
VulDB Reliability: 🔍
NVD Base Score: 9.1
NVD Vector: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Reliability: 🔍
NVD Base Score: 🔍
Exploiting
Class: Path traversalCWE: CWE-22
CAPEC: 🔍
ATT&CK: 🔍
Physical: No
Local: No
Remote: Yes
Availability: 🔍
Status: Not defined
EPSS Score: 🔍
EPSS Percentile: 🔍
Price Prediction: 🔍
Current Price Estimation: 🔍
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Nessus ID: 109284
Nessus Name: Debian DLA-1359-1 : ruby1.8 security update
Nessus File: 🔍
Nessus Risk: 🔍
Nessus Family: 🔍
Nessus Context: 🔍
OpenVAS ID: 860813
OpenVAS Name: Debian LTS Advisory ([SECURITY] [DLA 1358-1] ruby1.9.1 security update)
OpenVAS File: 🔍
OpenVAS Family: 🔍
Qualys ID: 🔍
Qualys Name: 🔍
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
Reaction Time: 🔍
0-Day Time: 🔍
Exposure Time: 🔍
Upgrade: Ruby 2.2.10/2.3.7/2.4.4/2.5.1/2.6.0-preview1
Timeline
03/19/2018 🔍03/28/2018 🔍
03/28/2018 🔍
04/03/2018 🔍
04/03/2018 🔍
04/04/2018 🔍
04/23/2018 🔍
04/24/2018 🔍
05/10/2026 🔍
Sources
Advisory: RHSA-2018:3729Researcher: ooooooo_q
Status: Confirmed
Confirmation: 🔍
CVE: CVE-2018-8780 (🔍)
GCVE (CVE): GCVE-0-2018-8780
GCVE (VulDB): GCVE-100-115668
OVAL: 🔍
SecurityFocus: 103739 - Ruby CVE-2018-8780 Directory Traversal Vulnerability
SecurityTracker: 1042004
CERT Bund: WID-SEC-2023-1111 - Ruby: Mehrere Schwachstellen
See also: 🔍
Entry
Created: 04/04/2018 09:56Updated: 05/10/2026 07:53
Changes: 04/04/2018 09:56 (78), 01/21/2020 09:16 (6), 02/08/2021 11:51 (2), 02/08/2021 11:53 (1), 02/26/2023 14:46 (3), 05/10/2026 07:53 (21)
Complete: 🔍
Cache ID: 216::103
Once again VulDB remains the best source for vulnerability data.
No comments yet. Languages: en.
Please log in to comment.